假设我在一个项目中构建了一个名为 App1 的应用程序,其中包含很多类。我决定要构建另一个名为 App2 的项目,并且我想使用那些相同的类,因此我决定将 App1 转换为一个 lib 文件。我必须删除 WinMain 函数才能这样做,还是我可以保留它,编译器将忽略 lib 文件中的 winMain。 ??
最佳答案
特别是在 Visual Studio 中,您的静态库在任何情况下都不会造成麻烦。即使您可以将 WinMain
(或控制台 main
)添加到静态库,您在第二个项目中使用它的唯一机会是显式查看 Linker-System-Subsystem
到适当的类型。
在这种情况下,如果您匹配例程(WinMain
用于 windows 子系统,main
用于控制台),那么您实际上可以编译您的第二个项目而无需定义 其中的 main
例程和 main
将从您的库链接。
不过,在这种情况下,如果您声明 main
和 ALSO 链接您的库,您的本地 main
将具有优先级并被调用,因此库中的 main
将被忽略。
因此,实际上,是否将函数导出到库对您来说没有区别,您可以保留它,除非您按照我之前指出的方式进行操作,否则不会使用它。
关于c++ - 你必须去掉 WinMain 才能将项目变成库吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2722410/