c++ - 你必须去掉 WinMain 才能将项目变成库吗

标签 c++ c visual-studio visual-studio-2008 visual-c++

假设我在一个项目中构建了一个名为 App1 的应用程序,其中包含很多类。我决定要构建另一个名为 App2 的项目,并且我想使用那些相同的类,因此我决定将 App1 转换为一个 lib 文件。我必须删除 WinMain 函数才能这样做,还是我可以保留它,编译器将忽略 lib 文件中的 winMain。 ??

最佳答案

特别是在 Visual Studio 中,您的静态库在任何情况下都不会造成麻烦。即使您可以将 WinMain(或控制台 main)添加到静态库,您在第二个项目中使用它的唯一机会是显式查看 Linker-System-Subsystem 到适当的类型。

在这种情况下,如果您匹配例程(WinMain 用于 windows 子系统,main 用于控制台),那么您实际上可以编译您的第二个项目而无需定义 其中的 main 例程和 main 将从您的库链接。

不过,在这种情况下,如果您声明 mainALSO 链接您的库,您的本地 main 将具有优先级并被调用,因此库中的 main 将被忽略。

因此,实际上,是否将函数导出到库对您来说没有区别,您可以保留它,除非您按照我之前指出的方式进行操作,否则不会使用它。

关于c++ - 你必须去掉 WinMain 才能将项目变成库吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2722410/

相关文章:

c# - 发现环境颜色背后的真实颜色

visual-studio - 从 VS 2013 将 Umbraco 7 部署到 Azure

c++ - 在 C++ 中同一类的另一个方法中使用 constexpr 方法

数据结构的 C++ 序列化

C - 整数输入验证代码

c - elf符号表中value列的含义

c - 抑制 "Bad system call"消息

c++ - 更新 std::map 对象数据

c++ - 右移运算符的奇怪行为 (1 >> 32)

c++ - 检查 C++ 应用程序中用户定义的 "Install Location"中是否存在文件