C++ 调用c#DLL函数
2012-08-07 16:51
351 查看
自己实践了一下,其实不是很难,怕自己忘记掉,再加上有几个需要注意的问题,这里记录下来。
1. c# 创建dll library
2. c++实现调用程序
这里创建一个Win32的控制台应用程序
Configure:右键点击解决方案资源管理器中的UseDll,选择“属性”,将公共语言运行库支持设置为“公共语言运行库支持(/clr)”
即Common Language Runtime Support (/clr)
PS:如果你是建立一个MFC程序的话,必须把Use of MFC设置成:Use MFC in a Shared DLL 共享dll,不然会引起冲突
(error D8016: '/clr' and '/MTd' command-line options are incompatible 错误)
Attention:
1. 使用#using引用dll,而不是#inculde。
2. 别忘了using namespace CSLib
3. 使用C++/clr语法,采用正确的访问托管对象,即:使用帽子‘^’,而不是星星‘*’。
1. c# 创建dll library
using System; using System.Collections.Generic; using System.Text; namespace AddDll { public class Add { public int iadd(int a, int b) { int c = a + b; return c; } } }
2. c++实现调用程序
这里创建一个Win32的控制台应用程序
Configure:右键点击解决方案资源管理器中的UseDll,选择“属性”,将公共语言运行库支持设置为“公共语言运行库支持(/clr)”
即Common Language Runtime Support (/clr)
PS:如果你是建立一个MFC程序的话,必须把Use of MFC设置成:Use MFC in a Shared DLL 共享dll,不然会引起冲突
(error D8016: '/clr' and '/MTd' command-line options are incompatible 错误)
#include "stdio.h" #using "..\debug\AddDll.dll" using namespace AddDll; int main(){ int result; Add ^add = gcnew Add(); //生成托管类型 //gcnew creates an instance of a managed type (reference or value type) on the garbage //collected heap. The result of the evaluation of a gcnew expression is a handle (^) to //the type being created. result = add->iadd(10,90); printf("%d",result); scanf("%s"); return 0; }
Attention:
1. 使用#using引用dll,而不是#inculde。
2. 别忘了using namespace CSLib
3. 使用C++/clr语法,采用正确的访问托管对象,即:使用帽子‘^’,而不是星星‘*’。
相关文章推荐
- C# 调用Dll中非托管C++代码时,函数参数的类型对照
- c#调用c++封装dll 参数为字符串输出函数的解决办法
- C#调用C(C++)dll示例教程,包含dll找不到函数入口的解决办法,包含C#dll调用方式不对出错的解决办法
- C#中调用C++的dll的参数为指针类型的导出函数(包括二级指针的情况)
- 如何生成DLL文件并导出函数及如何在C++或C#中调用DLL中导出的函数
- C#静态调用C++Dll导出函数,并在C++Dll中回调C#函数
- C# 调用Dll中非托管C++代码,函数参数的类型对照
- C#调用C++ dll,并向调用的函数传递“函数指针”
- 函数调用,C# 调用Dll中非托管C++代码时,函数参数的类型对照
- C# 调用 C++ dll 函数 时传递字符串 需要注意的问题
- C#与DLL和COM的混合编程(1)-C#调用C++写的非托管的DLL中导出的函数
- C#调用C++DLL的小总结8---C++Dll中函数返回字符串指针
- C#中调用C++的dll的参数为指针类型的导出函数(包括二级指针的情况)
- C#与DLL和COM的混合编程(1)-C#调用C++写的非托管的DLL中导出的函数
- C#调用C++ DLL 中定义的函数
- C# 调用 C++ DLL 函数和类
- C# 调用Dll中非托管C++代码时,函数参数的类型对照
- Unity3d 调用 C++ DLL之 DLL回调Unity3d (C++ DLL回调 C#函数)
- C#调用C++ dll导出函数提示找不到指定模块 by:凉游浅笔深画眉 / Net7Cracker
- C# 如何调用 C++ DLL中的函数接口和回调函数