使用MSVC从命令行构建DLL(无入口点)
我想使用MSVC编译器来构建DLL文件。使用MSVC从命令行构建DLL(无入口点)
问题是该DLL没有主入口点。它应该是一个由应用程序用作插件的共享DLL。我可以使用GCC这样编译:
GCC -c plugin.c 的gcc -o -shared plugin.dll plugin.o interface.def
DEF文件是逃避名在函数出口重整(这是应用程序通过该功能使用插件的方式)。
如果我尝试使用MSVC编译它,连接器会抱怨必须定义入口点。
我想问另一个问题,在MS Visual Studio套件中有没有像GCC“strip”这样的工具来减少EXE的文件大小?
虽然DLL不需要入口点,但Microsoft C运行时需要一个入口点来初始化它自己。有没有一个空的DllMain的理由?
当构建,它使用任何的 C运行时库,为了 一个DLL确保CRT是正确 初始化,无论是
初始化 功能必须命名的DllMain()和 的入口点必须与 指定链接器选项-entry :_DllMainCRTStartup @ 12 - 或 -
DLL的入口点必须显式调用 CRT_INIT()上进程附加和 进程分离
谢谢,不,没有理由,示例插件没有hava主入口点,这就是为什么我这样做。无论如何,我发现给连接器添加/ DLL选项可以让你做我想做的事,也许你可以将它添加到答案中,使其更加完整。谢谢你的一切! – Shantia 2009-09-09 00:26:35
你或许应该只问了另一个问题在...另外一个问题。在第二个问题上有专业知识的人可能无法看到它被埋在这个问题中。 – 2009-09-03 14:36:57
我同意,感谢您的评论。 – Shantia 2009-09-09 00:21:02