【发布时间】:2011-01-24 19:33:11
【问题描述】:
我正在使用 Visual Studio 2005。
我想编译一个简单的程序,它可以在任何 Windows 32 位版本上工作,而与安装的 c++ 运行时库版本无关。
此程序将调用GetModuleHandle 和GetProcAddress 函数而不进行任何其他函数调用,然后退出,当退出代码为函数地址时。
如何编译一个只依赖kernel32.dll和user32.dll的C++程序,没有任何c++运行时库?
【问题讨论】:
-
+1 这是一个很好的 SO 问题的缩影。
-
如果我可以问,这个程序的目的是什么?
-
我正在实现从 64 位进程到 32 位进程的代码注入,我需要帮助 32 位程序来查找某些函数的地址。
-
也许你应该问这个问题,因为有比创建帮助程序更好的方法。在我自己的开源项目(查看我的个人资料)中,我有 64 位到 32 位的 DLL 注入,为此我需要检索 32 位 LoadLibrary 的地址。您所要做的就是自己映射到 DLL 中并查找函数地址,然后添加远程进程加载的 DLL 的基地址。
标签: c++ windows visual-c++ runtime