这个VC语句是什么意思
PROCESSENTRY32 pe32 = { sizeof(PROCESSENTRY32) };
这个语句是什么意思,它符合C++标准么?
如果不符合C++标准,它应该怎么改?
-
近期文章
近期评论
- coolker 发表在《打造最快的Hash表》
- struggle 发表在《提供C语言教学课件(适用于初学者)》
- zhanghaibo 发表在《提供C语言教学课件(适用于初学者)》
- zhanghaibo 发表在《提供C语言教学课件(适用于初学者)》
- diys 发表在《C语言编程宝典(王大刚) 1.1 C 语言的产生与发展》
文章归档
- 2022 年十月
- 2014 年一月
- 2013 年十二月
- 2012 年十一月
- 2012 年七月
- 2012 年六月
- 2012 年五月
- 2012 年四月
- 2012 年三月
- 2012 年二月
- 2011 年十二月
- 2011 年十月
- 2011 年九月
- 2011 年八月
- 2011 年七月
- 2011 年六月
- 2011 年五月
- 2011 年四月
- 2011 年三月
- 2011 年二月
- 2011 年一月
- 2010 年十二月
- 2010 年十一月
- 2010 年十月
- 2010 年九月
- 2010 年八月
- 2010 年七月
- 2010 年六月
- 2010 年五月
- 2010 年四月
- 2010 年三月
- 2010 年二月
- 2010 年一月
- 2009 年十二月
- 2009 年十一月
- 2009 年十月
- 2009 年九月
- 2009 年八月
- 2009 年七月
- 2009 年六月
- 2009 年五月
- 2009 年四月
- 2009 年三月
- 2009 年二月
- 2009 年一月
- 2008 年十二月
- 2008 年十一月
- 2008 年十月
- 2008 年九月
- 2008 年八月
- 2008 年七月
- 2008 年六月
- 2008 年五月
- 2008 年四月
- 2008 年三月
- 2008 年二月
- 2008 年一月
- 2007 年十二月
- 2007 年十一月
- 2007 年十月
- 2007 年九月
- 2007 年八月
- 2007 年七月
- 2007 年六月
- 2007 年三月
- 2007 年二月
- 2007 年一月
- 2006 年十二月
- 2006 年十一月
- 2006 年十月
- 2006 年九月
- 2006 年八月
- 2006 年七月
- 2006 年六月
- 2006 年五月
- 2006 年四月
- 2006 年三月
- 2006 年二月
- 2006 年一月
- 2005 年十二月
- 2005 年十一月
分类目录
功能
PROCESSENTRY32 pe32 = sizeof(PROCESSENTRY32) ;
改成这样写的话。这句话不就是在计算 PROCESSENTRY32的存储空间的大小么?
可以!
不过最好写成!
PROCESSENTRY32 pe32 = (sizeof(PROCESSENTRY32));
其他的定义也可以写成这样的类型!
#define DPATH (“C:\\windows\\”)
pe32 这个变量被初始化成什么了?清空还是什么
怎么没有回答
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:提问题前先想清楚:所提的问题是什么?别人能不能从你的问题中获取到足够的信息?同时最好能把你的思路写出来!这样方便别人分析你的问题!