使用 Visual Studio 2008 及其 C/C++ 编译器,如何创建仅依赖于其他 Windows DLL 且不依赖于 Microsoft C 运行时的 Win32 DLL?
我有一些 C 代码,我想将其放入完全计算的 DLL 中,并且几乎不使用 C 库函数。
对于它确实使用的那些(例如 memcpy),我很乐意重新编写代码以使用 Win32 API 等价物(例如 CopyMemory)。
最佳答案
使用/NODEFAULTLIB 链接器选项并(当然)确保您对运行时没有实际依赖性。您还必须使用/ENTRY 链接器选项为 DLL 指定和定义自己的入口点,或者拥有与编译器/链接器期望的名称相匹配的自己的入口点函数(对于 dll,即 _DllMainCRTStartup
) .
Matt Pietrek 以前在 LIBCTINY 上发表的文章可能包含您需要的所有信息:
关于c++ - 如何创建不依赖于 C 运行时的 Win32 DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1279292/