Boost.asio in Visual C++ Form project

Boost.asio in Visual C++ Form project

本文关键字:Form project C++ Visual asio in Boost      更新时间:2023-10-16

我已经使用boost.asio在Visual CLR项目中成功地实现了网络应用程序。 但是当我尝试在Windows表单项目中使用相同的代码与boost.asio推荐的通用"语言运行时支持(/clr)"时,它无法Error 15 error LNK2022: metadata operation failed (8013119F) : A TypeRef exists which should, but does not, have a corresponding TypeDef: (dummy): (0x01000019)工作。

我的问题是如何在Windows表单项目中集成通过使用boost.asio完成的网络代码。我现在要尝试的是将所有 boost.asio 实现编译为"无公共语言运行时支持"在不同的项目中作为动态库,并将其与 Windows 窗体项目链接。

同时,如果你们中的任何人已经尝试过,请帮助我节省一些时间。

看来你正在使用boost::thread。根据这个错误报告,这个问题,以及我的个人经验,boost::thread在静态链接时不适用于C++/CLR项目。您应该将它们放在非托管库中,并改用该库,就像您自己所说的那样。

@穆罕默德我想我想

通了。我需要在一个空项目中手动添加表单,然后在其中包含 boost/asio。在 Windows 表单项目中加载 boost/asio 本身不起作用可能是因为预编译的标头。现在我必须弄清楚提升线程问题。就像你说的,我会尝试你提出的方法,并让你知道。