qq_37653113
qq_37653113
2021-06-11 17:46
采纳率: 100%
浏览 20

大佬们帮忙看看这一段代码,为什么输入进程名只有一个字母?

// 进程拍照PROCESS.cpp: 主项目文件。
#include "stdafx.h"
#include <Windows.h>
#include <TlHelp32.h>  //声明快照函数头文件
#include <cstdio>

using namespace std;


int main(int argc,char*argv[])
{
    
    PROCESSENTRY32    pe32; //定义结构变量
pe32.dwSize = sizeof(pe32);  //设置结构大小
 //给系统的所有进程进行拍照
HANDLE hProcessSnap= ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if(hProcessSnap==INVALID_HANDLE_VALUE)
{

    printf("函数CreateToolhelp32Snapshot调用失败!\n");
    return -1;
}
//利用循环遍历进程,轮流显示进程信息
BOOL bMore = ::Process32First(hProcessSnap,&pe32);

 while(bMore)
 {

    printf("进程名称:%s\n",pe32.szExeFile);


    printf("进程ID号:%u\n\n",pe32.th32ProcessID);
    
    bMore = ::Process32Next(hProcessSnap,&pe32);
    
 }
 //最后清除snapshot对象
 ::CloseHandle(hProcessSnap);

    getchar();

    return 0;
}

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • technologist_37
    CSDN专家-link 2021-06-11 18:01
    已采纳

    测试了一下,VS2010下显示很正常。我使用多字节字符集编码

    然后我改成使用UNICODE编码,效果就和你一样了

    你试试把项目->属性里的字符集改成多字节字符集看看

    点赞 1 评论
  • qfl_sdu
    qfl_sdu 2021-06-11 17:57

    使用unicode编码试试

    点赞 评论
  • QA_Assistant
    有问必答小助手 2021-06-15 17:29

    您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

    如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

    ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

    点赞 评论

相关推荐