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

use*_*144 1 c++-cli

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

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

Ree*_*sey 5

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

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