C ++ / CLI为什么在托管中不可见

时间:2012-05-25 00:46:38

标签: c++-cli

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

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

1 个答案:

答案 0 :(得分:5)

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

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