【发布时间】:2016-01-14 00:19:40
【问题描述】:
我有一个同时包含本机和托管 C++ 代码的项目。
它的运行时支持设置为/clr。
它的配置类型曾经设置为Application,因此它编译为.exe。这一切都很好。
但现在我想将此项目用作另一个项目的库(.dll)。
所以我将配置类型更改为动态库并将main() 函数重命名为其他名称。
然后重建项目会出现以下两个错误。
Error 2 error LNK1120: 1 unresolved externals C:\Projects\MyProject\Source\Debug\MyProject.dll MyProject
Error 1 error LNK2001: unresolved external symbol _main C:\Projects\MyProject\Source\CppSource\LINK MyProject
对应的输出如下。
1>------ Build started: Project: MyProject, Configuration: Debug Win32 ------
1> Main.cpp
1>LINK : error LNK2001: unresolved external symbol _main
1>C:\Projects\MyProject\Source\Debug\MyProject.dll : fatal error LNK1120: 1 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
我是不是忘记了什么?
【问题讨论】:
-
在这里查看一些帮助C++/CLI and mixed mode programming
-
您指的是特定的部分吗?这似乎是混合模式的一般指南。这个问题专门针对从 exe 项目创建 dll。
-
很难想象出了什么问题,当我尝试它时,这很容易。请务必更改 all 配置的配置类型。并检查 Linker > Advanced > Entry Point 设置,它应该是空白的。
-
入口点设置似乎成功了。非常感谢您的提示!
标签: visual-studio dll c++-cli mixed-mode