1

我有 c++ dll,我正在转换为 c++/cli。设置 /clr 编译器选项后,我的项目构建良好。但是,当我尝试通过引用 ac# 项目中的 dll 来引用本机方法时,c# 项目无法找到它。不设置 /clr 将所有源代码构建为 MSIL 应该从其他 .net 程序集中可见吗?为什么我必须创建一个 c++/cli 包装类来使本机代码对 c# 代码可见?

我不清楚 c++/cli 是如何工作的......

4

1 回答 1

5

不会使您的本/clr机类对托管代码可见,也不会将所有内容编译为托管代码。它仅允许您将托管代码添加到您的 C++ 项目中。这是通过 C++/CLI 语言扩展完成的(即: make aref class而不是 standard class)。

/clr:pure标志确实将所有内容编译为托管代码(非本机代码),但需要对源代码进行重大更改才能进行编译。

于 2012-05-25T00:49:29.167 回答