外壳程序谁会做?请指点一下小弟,分不够加!!

mostneed 2003-01-10 10:36:48
我想把资源里的2进制文件(.exe)读出来,然后加载到内存中并运行。

具体要怎么做呢? 提供参考资料也有分。

thx!!
...全文
27 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ZhouBoTong 2003-01-20
  • 打赏
  • 举报
回复
http://www.ddhome.net/pojie/31.htm参考以下吧
ZhouBoTong 2003-01-19
  • 打赏
  • 举报
回复
好像不行吧,在磁盘中的pe文件和装载道内存中的pe文件式不一样的,
是经过了重定位,内存边界对其,还要倒入相应的DLL,所以,
需要系统装载器装入程序才行。
zhang_zhibin 2003-01-11
  • 打赏
  • 举报
回复
这我就没有做过了。抱歉!
mostneed 2003-01-11
  • 打赏
  • 举报
回复
To: zhang_zhibin(阿笨猫)
谢谢回复!

我是想知道,怎么读到内存中然后直接运行,而不通过写临时文件?
zhang_zhibin 2003-01-11
  • 打赏
  • 举报
回复
Sorry,我用的是显示一时钟程序!
zhang_zhibin 2003-01-11
  • 打赏
  • 举报
回复
CFile f;
TCHAR szPath[ MAX_PATH + 1 ];
::GetTempPath( MAX_PATH, szPath );
lstrcat( szPath, "~clock.exe" );
if( !f.Open( szPath, CFile::modeCreate | CFile::modeWrite, NULL ) )
{
MessageBox( "发生未知错误,无法显示时钟!", "出错", MB_ICONSTOP );
return;
}
HGLOBAL hRes;
HRSRC hResInfo;
//获取应用实例
HINSTANCE insApp = AfxGetInstanceHandle();
//寻找EXE资源名
hResInfo = FindResource(insApp,(LPCSTR)IDR_EXEC,"EXEC");
hRes = LoadResource(insApp,hResInfo ); // Load it
DWORD dFileLength = SizeofResource( insApp, hResInfo ); //计算EXE文件大小
f.WriteHuge((LPSTR)hRes,dFileLength); //写入临时文件
f.Close();
WinExec( szPath, SW_SHOW );
mostneed 2003-01-11
  • 打赏
  • 举报
回复
请继续关注。。bcb版

http://expert.csdn.net/Expert/topic/1348/1348057.xml?temp=.6324274
duebbin 2003-01-11
  • 打赏
  • 举报
回复
mark
mostneed 2003-01-11
  • 打赏
  • 举报
回复
大家到bcb版看看,谢谢了。

分多少不是关键。
RomanticProgrammer 2003-01-10
  • 打赏
  • 举报
回复
:)

原来大哥在VC版也问了啊..看看BCB版的回答吧....

2,640

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧