将 C++ Win32 控制台项目类集成到 Visual Studio 2008 中的 Visual C++(Windows 窗体应用程序)项目中
Posted
技术标签:
【中文标题】将 C++ Win32 控制台项目类集成到 Visual Studio 2008 中的 Visual C++(Windows 窗体应用程序)项目中【英文标题】:Integrate C++ Win32 Console project classes into Visual C++ (Windows forms application) project in Visual Studio 2008 【发布时间】:2010-03-04 22:16:03 【问题描述】:我写了一些类,一个项目的后端,用 C++(win32 项目),然后想给它添加一个 GUI。 Visual C++ 似乎是一个很好的解决方案,但在完成 GUI 部分后,我无法集成纯 C++ 代码。有人有这方面的经验吗?我收到“未解决的外部”错误。显然 .cpp 文件在最后一步中没有链接。我想一些项目设置也需要更改,有人可以解释一下吗?
我也在考虑将这些类编译成 .dll 并将其导入到 Visual C++ 项目中,这有可能以某种方式编译还是两个项目可以一起编译?
感谢您的帮助,我已经玩了一段时间了,但找不到任何可行的解决方案。
佐尔坦
【问题讨论】:
您是说要从非托管(Win32 控制台)转到托管(Windows 窗体)吗? 请更准确地说明您要实现的目标。你用什么作为GUI? MFC、WCF、WinForms、Qt、wxWidgets、...? 【参考方案1】:“项目A”需要导入“项目B”的标题,还需要链接到“项目B”。
【讨论】:
【参考方案2】:您如何将这些旧类导入您的 C++ GUI 项目?作为库,还是作为源文件?
如果只是源文件,您只需将文件添加到项目中并与新文件一起编译即可。
【讨论】:
【参考方案3】:如果您的后端代码被集成为一个生成库的单独项目,您需要将此项目的依赖项添加到您的 GUI 应用程序中。
如果您没有将项目集成到您的 GUI 解决方案中,您需要设置包含目录,在链接器->输入中添加库,并通过在链接器选项中设置附加库目录让 VS 知道如何找到它。
【讨论】:
【参考方案4】:鉴于没有足够的细节来真正能够判断发生了什么,我的脑海中有很多可能性。
如果您没有单独链接后端,则不会编译后端部分的代码(项目的 cpp 文件不是 GUI 项目或相关依赖项的一部分)。 您的后端项目的库未链接;检查项目属性的链接部分。在您单独链接的情况下。 后端库和前端库已使用不同的设置进行编译,在链接时这会导致问题。例如调试和发布标准库、多线程或单线程库;如果它们不匹配,不同的字符串定义也会导致问题(特别是如果您使用了模板代码)。如果您愿意,完全可以使用后端部分构建 dll。如果它不会被其他任何东西使用,我可能不会打扰,只是静态链接,但你当然可以。
【讨论】:
以上是关于将 C++ Win32 控制台项目类集成到 Visual Studio 2008 中的 Visual C++(Windows 窗体应用程序)项目中的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Visual C++ 2008 中将 MFC 应用程序项目添加到 Win32 应用程序项目
Visual Studio 2017 c++ win32 控制台项目模板
Visual Studio 2017 c++ win32 控制台项目模板
如何将 MFC 支持添加到现有的 Win32 C++ 项目?