C++与C#互调dll的实现步骤_C语言教程-查字典教程网
C++与C#互调dll的实现步骤
C++与C#互调dll的实现步骤
发布时间:2016-12-28 来源:查字典编辑
摘要:本文实例展示了C++与C#互调dll的实现步骤,在进行大型项目共享dll动态链接库中可以用到。具体方法如下:一、C#调用C++dll步骤(只...

本文实例展示了C++与C#互调dll的实现步骤,在进行大型项目共享dll动态链接库中可以用到。具体方法如下:

一、C#调用C++ dll步骤(只能导出方法):

1. c++建立空项目->源文件文件夹中添加cpp文件和函数

2. c++属性设置中,配置类型设置为动态库dll,公共语言运行时支持改为/clr

3. c#引用c++的dll

4. c#声明c++的方法,并添加 DllImport特性

5. c#工程属性设置为:目标平台x86

6. 注意方法的类型匹配

7. 引发PInvokeStackImbalance异常:注意:C++的"_declspec"和C#的“CallingConvention=CallingConvention.Cdecl”

另外,可以通过VS的异常窗口,取消掉对 PInvokeStackImbalance异常的检测:

点击VS的“调试 - 异常”,打开异常窗口,展开选择“Managed Debugging AssistantsPInvokeStackImbalance”,去掉对应的“引发”可选框。

二、 c++调用 c# dll的步骤(可直接使用C#类):

1. 创建c++控制台应用程序

2. 拷贝c# dll到c++工程根目录

3. 工程属性->配置->常规->公共语言运行时支持->clr

工程属性->配置->c/c++常规->调试信息格式->zi

工程属性->配置->c/c++常规->公共语言运行时支持->clr

#using "CSharpDllProject.dll" using namespace CSharpDllProject;

三、 c#调用c++类步骤(c++/cli,可直接使用C++类)

c++/cli简介:C++/CLI标准是基于Microsoft提交的标准C++与通用语言基础结构(Common Language Infrastructure)结合的技术

1.使用c++/cli语法对标准c++类进行包装(可采用聚合模式,引用标准c++类,实现所有标准c++的方法)

2.c#引用c++ dll后,可直接new出一个 c++/cli创建的托管类对象

希望本文所述方法对大家有所帮助。

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新C语言学习
    热门C语言学习
    编程开发子分类