Ecl*_*pse 87
调用C++的一种简单方法是在C++/CLI中创建包装程序集.在C++/CLI中,您可以调用非托管代码,就像编写本机代码一样,但是您可以从C#调用C++/CLI代码,就好像它是用C#编写的一样.该语言基本上是作为其"杀手级应用程序"与现有库互操作而设计的.
例如 - 使用/ clr开关编译它
#include "NativeType.h"
public ref class ManagedType
{
NativeType* NativePtr;
public:
ManagedType() : NativePtr(new NativeType()) {}
~ManagedType() { delete NativePtr; }
void ManagedMethod()
{ NativePtr->NativeMethod(); }
};
Run Code Online (Sandbox Code Playgroud)
然后在C#中添加对ManagedType程序集的引用,并像这样使用它:
ManagedType mt = new ManagedType();
mt.ManagedMethod();
Run Code Online (Sandbox Code Playgroud)
查看此博客文章以获取更多解释示例.
P/Invoke是一项很好的技术,除了加载目标DLL文件的问题外,它运行得相当好.我们发现,最好的方法是创建一个本机函数的静态库,并将其链接到依赖于它的托管C++(或C++/CLI)项目.
归档时间: |
|
查看次数: |
88443 次 |
最近记录: |