VS2010--不能将参数 2 从“const char [12]”转换为“LPCWSTR”与指向的类型无关
2011-08-18 15:35
459 查看
PROCESSENTRY32 pe32; HANDLE hSnaphot; HANDLE hApp; DWORD dProcess = 0; hSnaphot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); // 获取进程快照 Process32First(hSnaphot, &pe32); // 指向第一个进程 do { if (lstrcmpi(pe32.szExeFile,"notepad.exe")==0) // 查找进程名称为 NotePad.exe (记事本的程序) { dProcess = pe32.th32ProcessID; break; } }while(Process32Next(hSnaphot, &pe32)); // 不断循环直到取不到进程 hApp= OpenProcess(PROCESS_VM_OPERATION|SYNCHRONIZE,FALSE,dProcess); // 根据进程 ID 获取程序的句柄 if (!WaitForSingleObject(hApp,INFINITE))// 等待记事本程序关闭 { cout << " 记事本已经关闭!" << endl; }想要得到一个程序被关闭的事件,我的代码如上,在VC6可以正常运行,可是在VS2010却编译不过去,提示错误语句是:lstrcmpi(pe32.szExeFile,"notepad.exe")==0
错误提示是:error C2664: “lstrcmpiW”: 不能将参数 2 从“const char [12]”转换为“LPCWSTR”与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
--------------------------------------------------------------------------
解决方法:把工程设成多字节码。
或者
L"notepad.exe"或_T("notepad.exe")
L说明宽字节
_T根据是否设为UNICODE,对应宽字符或窄字符
dubug正常release出错,一般是没初始化的问题
release正常debug出错,一般是内存泄漏的问题,指针没有释放,数组越界
相关文章推荐
- VS2010--不能将参数 2 从“const char [12]”转换为“LPCWSTR”与指向的类型无关
- 不能将参数2从“const char[15]”转换为“LPCWSTR”与指向的类型无关
- error c2664:"MessageBoxW":不能将参数2从“const char[15]”转换为“LPCWSTR”与指向的类型无关
- error C2664: “××函数”: 不能将参数 2 从“char *”转换为“LPCWSTR” 1> 与指向的类型无关;转换要求
- :MessageBoxW”: 不能将参数 1 从“const char [5]”转换为“LPCTSTR” 1> 与指向的类型无关;转换要求 reinterpret_cast、C 样式
- “error C2664: “MessageBoxW”: 不能将参数 2 从“char [300]”转换为“LPCWSTR” 1> 与指向的类型无关;转换要求 reinterpret_”问题解决
- VS2010不能将参数从const char[]转换为LPCWSTR的解决办法
- VS2010 error C2664: “GetModuleHandleW”: 不能将参数 1 从“const char [10]”转换为“LPCWSTR” 解决方法
- VS2010点滴——不能将参数 1 从“const char [11]”转换为“LPCWSTR”
- VS2010点滴——不能将参数 1 从“const char [11]”转换为“LPCWSTR”
- VS2010点滴——不能将参数 1 从“const char [11]”转换为“LPCWSTR”
- VS2010点滴——不能将参数 1 从“const char [11]”转换为“LPCWSTR”
- vs2010 不能将参数 2 从“const char [46]”转换为“LPCTSTR” 问题
- 不能将参数 1 从“const char [8]”转换为“LPCWSTR”
- vc2008错误:不能将参数 1 从“const char [5]”转换为“LPCTSTR”。。。。各种数据类型之间的转换
- B继承自A,A指针无法隐式转换为B指针,函数参数只管指针类型,与实际指向对象无关
- vc 不能将参数 1 从const char [*]转换为LPCWSTR
- error C2664: “LoadLibraryW”: 不能将参数 1 从“const char [21]”转换为“LPCWSTR”
- 不能将参数 1 从“const char [11]”转换为“LPCWSTR”
- error C2664: “wsprintfW”: 不能将参数 2 从“const char [6]”转换为“LPCWSTR”;error C2665: “AfxMessageBox”: 2 个重载中