在VS2008环境下用API编串口通信程序的有关问题
在VS2008环境下用API编串口通信程序的问题
------解决方案--------------------
TEXT("COM1")改成这样,
这是因为你的VS2008默认是UNICODE字符集环境,所以CreateFile在UNICODE下是定义成CreateFileW的.所以需要UNICODE形式的串,
- C/C++ code
#include "stdafx.h" int _tmain(int argc, _TCHAR* argv[]) { char lpBuf[] = "Hello World!"; HANDLE hFile = CreateFile( "COM1", //此处错误: error C2664: “CreateFileW”: //不能将参数1 从“const char [5]”转换为“LPCWSTR” GENERIC_WRITE, FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, 0); if (hFile == INVALID_HANDLE_VALUE) { return 1; } DWORD dwBW; WriteFile(hFile, lpBuf, strlen(lpBuf), &dwBW, NULL); CloseHandle(hFile); return 0; } /* ========================================================================== 这个程序在VC6上编译没错,但是在vs2008上就出问题了,问题如上所示,请问是不是 VCreateFile()的第1个参数类型在VC6中是unsigned char * ;而在VS2008中是unsigned short *的原因(看了MSDN猜测是这样的)?请各位给出原因和解决方法。万分感谢! ========================================================================== */
------解决方案--------------------
TEXT("COM1")改成这样,
这是因为你的VS2008默认是UNICODE字符集环境,所以CreateFile在UNICODE下是定义成CreateFileW的.所以需要UNICODE形式的串,