4

我想创建一个具有托管 C++ 接口的 dll,但在下面工作的实际代码是本机 C++。

目前我们正在使用 COM (STA) 与托管代码接口,但现在我们想用 ThreadPool 调用模块,这将不允许 STA 线程。我们希望避免为 MTA COM 重新编码模块。

我之前和其他人都问过这个问题,似乎回答没有解决基本问题:如何设置项目。我正在使用 VS2010,并希望列出步骤。我尝试从托管库(C++ 类库)开始并添加非托管类以及 MFC DLL(我们使用了一些 MFC 类,但最终希望解决它们)并添加托管类。我似乎永远无法编译它。

有人可以原谅我的无知并从项目类型开始明确列出步骤吗?

4

1 回答 1

4

从 C++/CLI 开始,Visual Studio 在编译时不再生成混合模式程序集(如您所描述的)。“本机” C++ 位被编译成不可验证的 CIL。

但是,可以将静态库嵌入到您的程序集中,该程序集是本机编译的,并且该本机库将在未更改的情况下合并。也就是说,如果您静态链接到本机静态库,您将生成您正在寻找的混合模式程序集。

于 2011-06-08T18:41:50.663 回答