【发布时间】:2018-05-18 16:29:55
【问题描述】:
我正在开发混合应用程序,同时使用托管代码和本机代码 我想从位于托管类 Program.cpp 中的 Main() 函数调用部署在本机类中的函数。
我尝试使用 std::thread 但使用 /cli 失败
我尝试使用 Managed System::Threading::Thread 但失败了,因为我需要在本地类中调用本地函数。
那么我如何在不使用任何第三方的情况下处理事情呢?
【问题讨论】:
-
正式verboten,托管代码不保证在操作系统线程上运行。您必须修改 .h 文件,以便 C++/CLI 编译器看不到 std::thread 成员。考虑一个接口或 Pimpl。
-
但我正在开发 API,它应该是原生的,而且我的应用程序类都是托管的,所以我尝试使用接口但编译器拒绝包括
... -
当您的 .h 文件不再包含 std::thread 时,您也不必#include 该文件。并确保编译原生代码没有 /clr 生效,静态库项目可以轻松地对代码进行分区。
-
那么目前情况下没有解决方案?