c++ - 如何创建不依赖于 C 运行时的 Win32 DLL

标签 c++ c winapi dll

使用 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/

相关文章:

c++ - 我可以使用 CreateFile,但将句柄强制为 std::ofstream 吗?

c++ - 开源即时通讯 API

c++ - 与零长度参数一起使用的 memset : ignore or watch out?

c++ - 错误 : No instance of constructor matches the argument list

c - -Wl,-wrap=symbol 不适用于共享库

windows - LoadLibraryEx(..., LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR) 加载错误 dll 的解决方法错误

c++ - Qt 单选按钮在图标下方放置文本

c - ATtiny 13 从 sleep 模式唤醒

c - 您是否需要在 C 枚举的最后一个成员之后添加一个额外的 ","?

c++ - 何时以编程方式卸载 SQL Server Native Client 是安全的?