作者GooLoo (平凡)
看板C_and_CPP
标题[问题] handle
时间Mon Sep 5 23:56:11 2016
开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
BCB6
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
问题(Question):
第一次用WIN32 API, 照书打...
hComm一直等於INVALID_HANDLE_VALUE,为什麽呢?
我有确认RS232是COM1没错,Edit也是1
我有哪边弄错了吗?
後面还有一些CODE我没贴, 因为hComm没成功, 後面就没意义了!
喂入的资料(Input):
预期的正确结果(Expected Output):
不出现 Open Serial Port Error
错误结果(Wrong Output):
出现 Open Serial Port Error
程式码(Code):(请善用置底文网页, 记得排版)
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
HANDLE hComm;
void __fastcall TForm1::Button1Click(TObject *Sender)
{
char *ComNo;
DCB dcb;
String Temp;
Temp = "COM" + IntToStr(ComboBox1->ItemIndex + 1);
ComNo = Temp.c_str();
hComm = CreateFile(ComNo,
GENERIC_READ|GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
0,
0);
if (hComm == INVALID_HANDLE_VALUE){
MessageBox(0,
"Open Serial Port Error",
"Comm Error",
MB_OK);
Edit1->Text = ComboBox1->ItemIndex + 1;
return;
}
}
补充说明(Supplement):
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.251.225.85
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1473090974.A.F97.html
1F:→ rephansu: 这个程式码跑 COM10以上会有问题,不知是不是这问题 09/05 23:59
※ 编辑: GooLoo (111.251.225.85), 09/06/2016 00:05:15
2F:→ GooLoo: 我是COM1说, 另外为什麽10以上会有问题? 09/06 00:06
3F:→ ilikekotomi: 用GetLastError看看会不会有帮助? 09/06 01:31
4F:→ petercoin: CreateFile倒数第二个参数改FILE_FLAG_OVERLAPPED看看? 09/06 18:57