能力值:
( LV3,RANK:30 )
|
-
-
2 楼
另外我不是写恶意的东西,暂时还没那个能力,只是做一个正规的软件安装程序,请大侠们帮帮忙看看是怎么回事,谢谢。
|
能力值:
( LV3,RANK:30 )
|
-
-
3 楼
妈的多了include,害我浪费这么多时间
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
B程序你是怎么释放出来的?肯定是你把B程序作为二进制资源,然后释放的过程中出现了问题,你仔细检查一下这部分代码,我以前编写像你一样的程序却没有出现类似你这种情况
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
一般把PE文件作为二进制资源释放的代码如下:
HMODULE hModule;
hModule = GetModuleHandle(NULL); //获取当前模块句柄
HRSRC hRExeFile;
hRExeFile = FindResource(hModule, MAKEINTRESOURCE(IDR_SOM_EXE), TEXT("SOM")); //IDR_SOM_EXE为二进制资源的ID
HANDLE hExeFile;
hExeFile = LoadResource(hModule, hRExeFile);
DWORD dwExeSize;
dwExeSize = SizeofResource(hModule, hRExeFile);
char *szExeBuf;
szExeBuf = (char *)malloc(dwExeSize);
memset(szExeBuf, 0, dwExeSize);
memcpy(szExeBuf, (void *)hExeFile, dwExeSize);
FreeResource(hExeFile);
HANDLE hFile;
hFile = CreateFile(csPath, GENERIC_WRITE, FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); //csPath为你的exe释放到的路径
if(hFile==INVALID_HANDLE_VALUE)
{
MessageBox("生成文件失败!");
return;
}
DWORD dwHigh;
if (!WriteFile(hFile, szExeBuf, dwExeSize, &dwHigh, NULL))
{
free(szExeBuf);
CloseHandle(hExeFile);
dwHigh = GetLastError();
MessageBox("写入文件失败!");
return;
}
|
|
|