首页 > 用户发贴区 > 编程问题提问区 > 这个VC语句是什么意思
2006
02-23

这个VC语句是什么意思

这个VC语句是什么意思
PROCESSENTRY32 pe32 = { sizeof(PROCESSENTRY32) };
这个语句是什么意思,它符合C++标准么?
如果不符合C++标准,它应该怎么改?


这个VC语句是什么意思》有 5 条评论

  1. cboy 说:

    这。。。这。。没见过这么写变量定义的。

    PROCESSENTRY32 pe32 =  sizeof(PROCESSENTRY32) ;

    改成这样写的话。这句话不就是在计算 PROCESSENTRY32的存储空间的大小么?

     

  2. xstar 说:

    可以!
    不过最好写成!
    PROCESSENTRY32 pe32 = (sizeof(PROCESSENTRY32));

    其他的定义也可以写成这样的类型!

    #define DPATH      (“C:\\windows\\”)

    xstar38772.0076041667

  3. lisypro 说:

    pe32 这个变量被初始化成什么了?清空还是什么

  4. lisypro 说:

    怎么没有回答

  5. xstar 说:

    int iLen = { sizeof( int ) };
    这样是可以的!iLen = 4;

    PROCESSENTRY32 pe32 = { sizeof(PROCESSENTRY32) }; 比较奇怪!
    除非PROCESSENTRY32是int型的!否则会出错的!

    但查询的结果是:
    typedef struct tagPROCESSENTRY32 {
    DWORD dwSize; // 结构大小;
    DWORD cntUsage; // 此进程的引用计数;
    DWORD th32ProcessID; // 进程ID;
    DWORD th32DefaultHeapID; // 进程默认堆ID;
    DWORD th32ModuleID; // 进程模块ID;
    DWORD cntThreads; // 此进程开启的线程计数;
    DWORD th32ParentProcessID; // 父进程ID;
    LONG pcPriClassBase; // 线程优先权;
    DWORD dwFlags; // 保留;
    char szExeFile[MAX_PATH]; // 进程全名;
    } PROCESSENTRY32;

    你上面的那段代码不知是要做什么?如果得到长度的话是:
    int iPE32len = sizeof( PROCESSENTRY32 );

    以上的结构的用法如下:
    得到相关的进程信息。 两个函数原型声明如下:

    BOOL WINAPI Process32First(HANDLE hSnapshot, LPPROCESSENTRY32 lppe);
    BOOL WINAPI Process32Next(HANDLE hSnapshot,LPPROCESSENTRY32 lppe);

    下面给出一个简单的应用示例。在此示例中将枚举出系统的所有进程,并获取各进程的标识号和相应程序的绝对路径,进程标识号在下一步对进程的管理中将要用到,程序路径则直接通过列表控件显示出来:

    // PROCESSENTRY32结构对象
    PROCESSENTRY32 pe;
    // 创建快照句柄
    HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    // 先搜索系统中第一个进程的信息
    Process32First(hSnapshot, &pe);
    // 下面对系统中的所有进程进行枚举,并保存其信息
    do{
    // 把进程对应的文件路径名填入列表框
    int index = m_ctlwndList.AddString(pe.szExeFile);
    // 设置列表框中该项的Data相应的进程的ID号,利于以后终止该进程
    m_ctlwndList.SetItemData(index, pe.th32ProcessID);
    } while (Process32Next(hSnapshot, &pe));
    // 关闭快照句柄
    CloseHandle(hSnapshot);

    BTW:提问题前先想清楚:所提的问题是什么?别人能不能从你的问题中获取到足够的信息?同时最好能把你的思路写出来!这样方便别人分析你的问题!

    xstar38777.5097106481

留下一个回复