我想用GetProcAddress获取用CreateProcess创建的进程里的一个函数地址,但是GetProcAddress要求的是进程的HMODULE/HINSTANCE,所以我要取得实例句柄,但是不知道怎么获得
解决方案 »
- 用CxImage解码Jpg至BMP,怎么可以得到BMP信息头和文件头?
- CString 的数据转正数组
- CStringList基础问题
- 关于对话框数据交换的问题....请指教
- 窗口的大小发生变化时控件能相应调整!
- SDK编程时如何把声音文件静态连接在程序中.....
- 在VC单文档中嵌入EXCEL,如何获得当前单元格的行、列号?比如选了“B3”这个单元格,在程序中怎样获得它得行:3 ;列:2(B) 。我这么试
- _T、_TEXT都是做什么用的??
- 谁对ActiveX控件感兴趣?如何在一个ActiveX控件上添加按钮、组合框等其它控件?
- 利用Modem 能发手机短消息吗?能打呼机吗!
- 控件里面要显示一些图片,请问怎么序列化图片,以便能保存起来
- 如何取得操作系统的语言设置
你这个是CreateProcess的,那么是2个进程了,第一个进程怎么能调用第二个进程空间内的函数呢。如果是LoadLibrary倒是可以的。
像winmain什么的。
LoadLibrary can be used to map a DLL module and return a handle that can be used in GetProcAddress to get the address of a DLL function. LoadLibrary can also be used to map other executable modules. For example, the function can specify an .EXE file to get a handle that can be used inFindResource orLoadResource. 看最后这句“Do not use LoadLibrary to "run" a .EXE file.”
在一个进程内加载多个exe要做的额外工作包括:自己手工映射各个section,解决IAT,解决relocation,解决.tls section(Thread Local Storage);截获一些API做特殊处理,比如进程内经常用GetModuleHandle(NULL)得到.exe的HINSTANCE,你得分清GetModuleHandle从哪个exe被调用,返回不同的handle;最后你还得分清哪些线程由哪个exe创建,等等。
总之,以你现在的知识,不大可能做出来。