如何使用 Win32 API 与 com 端口 (RS232) 通信

2024-05-18

我正在尝试使用 win32 API 与 com 端口对话 我找到了这个http://www.robbayer.com/files/serial-win.pdf http://www.robbayer.com/files/serial-win.pdf

hSerial = CreateFile("COM1",
GENERIC_READ | GENERIC_WRITE,
0,
0,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
0);

我使用 VS2008,它抱怨 错误 C2664:“CreateFileW”:无法将参数 1 从“const char [5]”转换为“LPCWSTR”

好吧,我猜它不喜欢“COM1”是 char* 类型,

我尝试将其转换为 LPCWSTR("COM1"),然后编译没有问题。

但是,它返回“ERROR opening serial port -1”,因此它没有成功找到com端口。我想直接铸造不是正确的方法?

请告诉我应该做什么才能使这项工作成功。

msdn 没有那么有帮助http://msdn.microsoft.com/en-us/library/ms810467.aspx http://msdn.microsoft.com/en-us/library/ms810467.aspx

我不知道“gszPort”是什么意思


Try _T("COM1")代替LPCWSTR("COM1")。它被称为通用文本映射 http://msdn.microsoft.com/de-de/library/7dzey6h6.aspx。我实际上不知道这是否是问题所在,但使用_T是正确的方法。

此外,当 Windows API 调用返回错误条件时(例如-1)你可以使用最后一个错误代码(使用GetLastError and FormatMessage) http://msdn.microsoft.com/en-us/library/ms680347.aspx以获得错误的更详细描述。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Win32 API 与 com 端口 (RS232) 通信 的相关文章

  • 有关 CredEnumerate 的帮助

    作为后续this https stackoverflow com questions 199518 how to programatically add mapped network passwords winxp我希望有人可以帮助解决这个
  • Perl:管理 Windows 上的路径编码

    我正在努力处理包含非英文字符的路径 Activestate Perl Windows XP 如何打开 写入 复制等位于包含希腊语 俄语 法语重音字符的路径中的文件 假设我要将 text txt 文件复制到的目录是 C Documents a
  • 无法使用 C++ 中的 Window 蓝牙 API 连接到蓝牙设备

    我仅使用 Windows 的蓝牙 API 创建了一个程序 该程序列出范围内的蓝牙设备 然后搜索特定的蓝牙设备 HC 05 蓝牙模块 如果搜索成功 程序将验证并设置设备的服务状态 以使用串行端口 GUID 1101 创建虚拟端口 我的目标是以
  • ReadProcessMemory 上出现错误 299

    尝试从游戏内存中读取实体名称 使用 ce 检查时指针 100 正确 读取 写入浮点 整数值没有问题 32 位进程 游戏也是如此 尝试在 x64 中编译代码 但没有帮助 GetLastError 返回 nr 299 错误 部分 复制 299
  • 32位进程在64位操作系统上可以访问多少内存?

    在 Windows 上 正常情况下 32 位进程只能访问 2GB RAM 或通过 boot ini 文件中的特殊开关访问 3GB 在 64 位操作系统上运行 32 位进程时 有多少可用内存 是否有任何特殊的开关或设置可以改变这种情况 默认
  • WM_NEXTDLGCTL 可以与非对话框窗口一起使用吗?

    的文档WM NEXTDLGCTL https msdn microsoft com en us library windows desktop ms645432 aspx声明该消息将与对话框一起使用 发送到对话框过程以将键盘焦点设置到对话框
  • 如何在Windows 7中使用批处理脚本获取本地连接名称

    我正在编写一个简单的批处理脚本来检索 Windows 上的所有网络接口 但我只需要本地连接名称 本地连接接口名称不是默认名称 有没有办法使用批处理脚本仅检索本地连接名称作为字符串 不完全确定您在问什么 但我认为您的问题是您想要获取网络接口的
  • Python实时读取串口数据

    我正在使用 Python 中的脚本通过串行端口以 2Mbps 的速度从 PIC 微控制器收集数据 PIC 在 2Mbps 下完美定时工作 FTDI USB 串行端口在 2Mbps 下工作也很好 均通过示波器验证 我每秒发送消息 大小约为 1
  • 该进程无法访问该文件,因为该文件正在被另一个进程使用

    当我从 bat 文件启动 net 控制台应用程序时 例如start myapp exe 然后 myapp exe 尝试将文件写入其当前目录 尽管我收到 net 运行时错误 声称该文件正在被另一个应用程序使用 没有其他应用程序在运行 http
  • 获取文件夹及其子文件夹中最长文件路径的长度

    我正在寻找一个可以从命令行 批处理 PowerShell 运行的脚本 该脚本将遍历文件夹及其子文件夹 并返回一个数字 该数字是最长文件路径的长度 我已经看到了一些批处理和 PowerShell 脚本 例如 如何在 Windows 中查找路径
  • PSExec 中的会话 ID

    Psexec 无法在远程会话上为我显示记事本 GUI 因此 我尝试获取会话 ID 如下所示 c Users Amitra Downloads PSTools gt PsExec u administrator p force 135 20
  • 使用搜索词打开 Windows 资源管理器查找窗格

    我正在尝试创建一个应用程序 该应用程序打开 Windows 资源管理器搜索功能并搜索输入了指定术语的文件 文件夹 我已经有了 Windows Vista SP1 使用 Windows 索引服务引入的 search query 命令的代码 这
  • PE 文件中的跳转存根

    最近我反汇编了一个DLL 用c c 编写 发现代码段内有很多 跳转存根 这些存根除了跳转到 DLL 内的函数之外什么也不做 eg jmp foo jmp foo2 为什么编译器 Visual studio 2012 在二进制文件中包含这些函
  • 是否有比 lex/flex 更好(更现代)的工具来生成 C++ 分词器?

    我最近将源文件解析添加到现有工具中 该工具从复杂的命令行参数生成输出文件 命令行参数变得如此复杂 以至于我们开始允许它们作为一个文件提供 该文件被解析为一个非常大的命令行 但语法仍然很尴尬 因此我添加了使用更合理的语法解析源文件的功能 我使
  • 批处理文件 - 读取特定行,并将该行中的特定字符串保存为变量

    有没有办法让 for f 循环 或其他任何东西 读取特定行 这是我到目前为止的代码 它读取每一行的第一个单词 echo off set file readtest txt for f tokens 1 delims A in file do
  • 如何在Windows上安装Xlib(eclipse、c语言)

    好的 我需要使用它进行图形编程 GUI cs 349 uwaterloo 第一次作业 我在谷歌搜索结果中看到随机的 Xlib h 和 Xutil h 文件 但它没有在哪里说明我如何从某个网站安装或下载 Xlib 我什至尝试将 Xlib h
  • 匿名、身份验证、模拟和委派之间有什么区别,为什么委派需要 Kerberos?

    当我们的客户安装我们的软件时 他们通常选择 拆分安装 其中服务在一个机器上运行 数据库在另一个机器上 这些服务可能与其他服务通信 或者数据库可能包含需要与另一个数据库通信的存储过程 这将我们带入了 Kerberos 和 SetSPN 的黑暗
  • TRichEdit和URL高亮问题

    我正在使用当前代码在 TRichEdit 上突出显示 URL procedure TForm1 WndProc var Message TMessage var p TENLink strURL string begin if Messag
  • 如何在超时后关闭上下文菜单?

    我需要有一个上下文菜单 当前使用 TrackPopupMenu 创建 在一段时间不活动后自动关闭 我正在尝试搜索 但只找到相反的结果 如何activate超时后的弹出窗口 或针对特定应用程序的专门内容 我发现的唯一接近的事情是枚举桌面的子级
  • 使用 CLion 进行 OpenCV Windows 设置

    我想在 Windows 上为 CLion IDE 设置 OpenCV 我尝试使用 OpenCV 3 1 和 2 4 得到相同的结果 我有 Windows 10 64 位 CLion 使用 cygwin 环境 到目前为止我做了什么 1 从Op

随机推荐

  • R中的重叠矩阵

    我有以下数据框 id channel 1 a 1 b 1 c 2 a 2 c 3 a 我想创建并重叠矩阵 它基本上是一个方阵 行和列标签为 a b c 表中的每个条目显示每个通道共有多少个 id 例如 在上面的例子中 矩阵看起来像 a b
  • Golang:带有 JSON 负载的 http.NewRequest POST 返回错误 500

    我正在开发一个 API 库 有一个API端点 POST 当您发出curl命令时 它是 curl H X API TOKEN API TOKEN http interest graph getprismatic com text topic
  • 请参阅 Java EE eclipse 调试中的 POST 参数

    我在调试 Java EE 方面没有经验 我更像是一个 javascript 人 我需要查看哪些 HTTP POST 参数到达服务器端 我在表单将其操作指向的 jsp 文件中放置了一个断点 现在我在调试变量窗口中找不到 POST 内容 他们在
  • java.lang.LinkageError:尝试重复的类定义

    为什么会发生错误以及如何修复它 02 13 02 pool 4 thread 2 WARN Exception in thread pool 4 thread 2 02 13 02 pool 4 thread 2 WARN java lan
  • 域套接字“sendto”遇到“errno 111,连接被拒绝”

    我正在使用域套接字从另一个进程获取值 就像 A 从 B 获取值一样 它可以运行几个月 但最近 A 向 B 发送消息时偶尔会失败 出现 errno 111 连接被拒绝 我检查了B域套接字绑定文件 它是存在的 我也在另一台机器上做了一些测试 效
  • 安装了 32 位的 Python,显示为 64 位

    我需要运行 32 位版本的 Python 我认为这就是我在我的机器上运行的 因为这是我下载的安装程序 当我重新运行安装程序时 它会将当前安装的 Python 版本称为 Python 3 5 32 位 然而当我跑步时platform arch
  • Ruby on Rails 服务器在 HTTPS POST 请求期间崩溃

    我正在尝试与你沟通城市飞艇API http urbanairship com docs push html broadcast使用 ROR Web 应用程序 在我的控制器中 我有以下代码 require net http require n
  • 如何在 QtQuick 2 中对 QML TableView 进行排序?

    我想使用 Qt 5 1 实现具有自定义角色的可排序 TableView 但我不知道当用户单击标题时该怎么做才能对其进行排序 在我的 Qt pro 文件中 我添加了 android ios blackberry qtHaveModule wi
  • Excel工作簿关闭后反复打开

    我使用了 Application ontime 方法来调度一些宏 关闭工作簿后 它会一次又一次地打开 为了解决这个问题 我在工作簿上设置了另一个事件 BeforeClosed 现在它显示运行时错误 1004 Object Applicati
  • 检查 TypeScript 中是否选中复选框元素

    我的 html 文件上有一个复选框
  • ReactiveUI 和 Caliburn Micro 一起?

    我一直在使用 Caliburn Micro 作为我们的 MVVM 框架对新的 Silverlight 应用程序进行一些原型工作 团队总体上对此感到满意 为了解决对服务的请求限制的一些问题 有人建议我研究 ReactiveUI 的 React
  • 正则表达式获取字符串中的第一个数字和其他字符

    我是正则表达式的新手 想知道如何才能只获取字符串中的第一个数字 例如100 2011 10 20 14 28 55 在这种情况下 我希望它返回100 但该数字也可以更短或更长 我在想类似的事情 0 9 但它单独获取每个数字 100 2001
  • 自动递增 ID 号 Google Apps 脚本

    我想在向工作表添加新值时自动增加 ID 我尝试从当前的 ID 列表创建一个列表 但它只计数到 5 因此当自动递增时 它只会到达一个点并为每个输入保存该数字 以下是我尝试获取 ID 号列表的方法 但它没有获取整个列表 我缺少什么 var ss
  • 将 time.Time 转换为字符串

    我正在尝试将数据库中的一些值添加到 string在围棋中 其中一些是时间戳 我收到错误 无法在数组元素中使用 U Created date 类型 time Time 作为类型字符串 我可以转换吗time Time to string typ
  • 通过 HttpClient 使用外部 REST Web 服务的存储库模式示例?

    我已经进行了相当多的搜索 但没有找到任何在 ASP NET MVC 应用程序中使用存储库模式使用外部 REST Web 服务的好示例 并且具有松散耦合和有意义的关注点分离 我在网上找到的几乎所有存储库模式示例都是编写 SQL 数据或使用 O
  • 频繁绘制 CGPath 时的性能

    我正在开发一个将数据可视化为折线图的 iOS 应用程序 该图被绘制为CGPath在全屏自定义中UIView最多包含 320 个数据点 数据经常更新 图表需要相应地重新绘制 刷新率为 10 秒就很好了 到目前为止很容易 然而 我的方法似乎需要
  • 如何结合pytube和tkinter标签来显示进度?

    我正在编写从 youtube 下载歌曲的小程序 使用 pytube 我想添加 python tkinter GUI 以在下载文件时显示百分比值 现在 当我执行代码时 程序首先下载文件 大约需要 60 秒 然后才显示 100 的标签 如果我希
  • Oracle SQL 函数中可以有 commit 语句吗

    在 SQL 函数中使用 COMMIT 语句是否可能 有意义 从技术上来说 答案是肯定的 你can请执行下列操作 create or replace function committest return number as begin upd
  • 为什么 h_addr_list (在 hostent 结构中)类型为 char** 而不是 void*?

    我试图找出一段构建 hostent 对象的代码 更具体地说 它的工作部分是填充 h addr list 数组 我对分配到数组中的值被强制转换为这一事实感到困惑char 据我所知 这个数组与字符串无关 我注意到h addr list数组实际上
  • 如何使用 Win32 API 与 com 端口 (RS232) 通信

    我正在尝试使用 win32 API 与 com 端口对话 我找到了这个http www robbayer com files serial win pdf http www robbayer com files serial win pdf