c#如何调用c++写的DLL中的导出类

 我来答
DoramiHe
2017-08-21
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
如果是托管C++的话可以像1L说的一样直接引用,不过估计这样你就不会问了吧……
C#当中可以调用Native代码DLL中导出的函数,前提是你知道这个函数的名字。不要以为这个条件很简单,这意味着你必须把这个函数定义为extern "C"(也就是标准C的DLL导出,不要用VC++的C++导出格式,更不能直接导出类)。换句话来说,最起码的条件是,你把这个类的成员函数全部定义成普通的函数,也就是把
int MyClass::MyMember(int paraA,int paraB);
这样的函数写成
extern "C"{
int MyClass_MyMember(MyClass *pointThis, int paraA, int paraB);
}
这样的形式然后导出。当然,构造函数和析构函数也不例外,尤其析构函数非常重要,可能需要手工调用。

这些只是最基本的条件。在C#当中调用Native库的函数,而且还用到指针,是一件非常危险的事情,极其容易造成内存泄露,最好三思而后行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
?>

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式