69,373
社区成员
发帖
与我相关
我的任务
分享
char s2[]="////.//";
char s[2];
char s1[5]="COM";
itoa(iComID,s,10);
strcat(s1,s);
strcat(s2,s1);
//将char*转为LPCTSTR
int num = MultiByteToWideChar(0,0,s2,-1,NULL,0);
wchar_t *wide = new wchar_t[num];
MultiByteToWideChar(0,0,s2,-1,wide,num);
//LPCTSTR s1=_T("COM1");
/*LPCTSTR转char*
wchar_t widestr[1024] = L"wo shi ni yeye";
int num = WideCharToMultiByte(CP_OEMCP,NULL,widestr,-1,NULL,0,NULL,FALSE);
char *pchar = new char[num];
WideCharToMultiByte (CP_OEMCP,NULL,widestr,-1,pchar,num,NULL,FALSE);*/
m_hCom = CreateFile(wide, // 定义串口名 #include <tchar.h>
GENERIC_READ | GENERIC_WRITE, // 存取模式(读写)
0, // 共享模式:必须设置为0,表示设备独占使用
NULL, // 保密性
OPEN_EXISTING, // 必须设置为OPEN_EXISTING打开不是创建
FILE_FLAG_OVERLAPPED, // 文件属性,如果是异步模式,可设置为FILE_FLAG_OVERLAPPED
NULL // 模版,串口设备必须设置为NULL
);
if (m_hCom == INVALID_HANDLE_VALUE)
{
return false;
}
else
{
return true;
}
我用这个在程序中提示串口被打开了,但是我用串口调试助手却还是能够打开这个串口。奇怪的是,如果我用串口调试助手先打开了这个串口的话,则这个程序是打不开这个串口的。。。。求解答啊,不要沉下去啊,我还会很多问题需要请教的。。。