C++CodePROCESSENTRY32Debug下正常,Release下异常。 process release

HANDLE hProSnap =CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if (INVALID_HANDLE_VALUE == hProSnap)
{
ShowErrMessage("CreateToolhelp32Snapshot");
CDialog::OnCancel();
}

PROCESSENTRY32 pe;
int nItem = 0;

if(Process32First(hProSnap, &pe))
{
MessageBox("Hello");
do
{if (strcmp("[System Process]",pe.szExeFile) &&strcmp("System",pe.szExeFile))
{
m_CB_ProcessList.InsertString(nItem, pe.szExeFile);
m_CB_ProcessList.SetItemData(nItem, pe.th32ProcessID);
nItem++;
}
}
while(Process32Next(hProSnap, &pe));
}
else
ShowErrMessage("");

CloseHandle(hProSnap);
C++CodePROCESSENTRY32Debug下正常,Release下异常。 process release
此处的主要问题是PROCESSENTRY32。

其在Debug下会主动预先分配内存,但是在Release下没有预先分配。当运行至此处的时候,出现内存字节不足。

有些问题DEBUG下能自动修正,比如,字符数组内存不够自动扩展,release下程序就异常。

解决此问题的方法就是声明问了pe后,主动给其分配字节大小。

PROCESSENTRY32 pe;
pe.dwSize = sizeof(PROCESSENTRY32);

  

爱华网本文地址 » http://www.aihuau.com/a/25101016/323679.html

更多阅读

电脑主机运行正常,显示器黑屏 主机灯亮显示器黑屏

  主板不带集成显卡,独显GF5200芯片,内存两条1代512M。检查了电脑的连接是否正常,然后通电开机启动:发现,主机的工作灯正常闪动,硬盘灯也是显示硬盘工作正常。键盘,鼠标指示灯都亮,按键盘的NumLock键,小键盘启用关闭切换正常,但是显示器显示

Windows7 C盘太大,如何拆分成多个分区? win7拆分分区

我们购买的品牌机,很多是预装好了操作系统的,预装的操作系统常常只给分1个区,所有文件全部放在C盘!这样很不方面我们对资料文件进行管理,怎么办呢,重装太麻烦,作为一个小菜鸟的我,特别专业的分区软件也不太懂得如何使用。经过研究我发现不需

声明:《C++CodePROCESSENTRY32Debug下正常,Release下异常。 process release》为网友一笑醉人间分享!如侵犯到您的合法权益请联系我们删除