简单的工作室

当前位置: 主页>编程技巧>VC++编程>

'strcmp' : cannot convert parameter 1 from 'unsigned short [260]' to 'const char

时间:2014-11-28 13:48来源:未知 作者:简单的工作室 点击:
'strcmp' : cannot convert parameter 1 from 'unsigned short [260]' to 'const char *' 解决办法 把包含的头文件 #include tlhelp32.h 往上移动。 今天碰到了一个很奇怪的问题,同样的代码,在以前的一个工程里就能正常运行,在新的工程里 老是报错,提示类型无法转换,研究好

'strcmp' : cannot convert parameter 1 from 'unsigned short [260]' to 'const char *'

解决办法 把包含的头文件 #include <tlhelp32.h> 往上移动。

  今天碰到了一个很奇怪的问题,同样的代码,在以前的一个工程里就能正常运行,在新的工程里

老是报错,提示类型无法转换,研究好久,发现自己包含文件 #include <tlhelp32.h> 最后一个包含了

然后运行 下面的代码就报错了。


/*用CreateToolhelp32Snapshot进行对系统所有进程进行快照,然后利用Process32First取得第一个进程句柄,然后把得到的PROCESSENTRY32结构体中的szExeFile就是进程名进行比较,利用Process32Next进行循环比较,具体用法看msdn,就可以得到进程句柄了,,,
附上C/C++代码:*/
#include<iostream>
#include<windows.h>
#include<Tlhelp32.h>
using namespace std;
DWORD GetProcessID(char *FileName)
{
HANDLE myhProcess;
PROCESSENTRY32 mype;
mype.dwSize = sizeof(PROCESSENTRY32);
BOOL mybRet;
//进行进程快照
myhProcess=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); //TH32CS_SNAPPROCESS快照所有进程
//开始进程查找
mybRet=Process32First(myhProcess,&mype);
//循环比较,得出ProcessID
while(mybRet)
{
if(strcmp(FileName,mype.szExeFile)==0)
return mype.th32ProcessID;
else
mybRet=Process32Next(myhProcess,&mype);
}
return 0;
}

int main(){
        cout<<GetProcessID("QQ.exe");  //通过进程名比较
        return 0;
}
(责任编辑:简单的工作室)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容