浅谈C++调用C#的DLL程序方法

开发 后端
本文通过例子,讲述了C++调用C#的DLL程序的方法。作者亲身体会,并作出了以下总结,下面就让我们一起来学习吧。

C#编译成DLL或者Axtive控件,再由C调用!比如使用C++调用C#的DLL

SwfDotNet是.net下输出flash的类库。SwfDotNet是C#编写的,作者的C#水平,真是令我佩服。这是个特别好的读写Swf文件的库。但是,我要用在C++项目中,怎么让C++调用C#的DLL呢。今天一上午都在琢磨这个问题,耽误了很多时间,原因是编译是出现:warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失。

接着就是一大堆的0x01等等。自己做了个Sample,仔细分析发现还是自己没有搞清楚。正确的操作如下:

1 创建C# DLL,需要指定应用类型为“类库”,代码:

  1. namespace CSLib  
  2. {  
  3. public class Class1  
  4. {  
  5. private string name;  
  6. public string Name  
  7. {  
  8. get  
  9. {  
  10. return name;  
  11. }  
  12. set  
  13. {  
  14. name = \"Your Name: \" + value;  
  15. }  
  16. }  
  17. }  
  18. }  

 

2 C++客户程序,是个控制台应用,代码: #using \"..\\debug\\CSLib.dll\"

 

  1. using namespace CSLib;  
  2. int _tmain(int argc, _TCHAR* argv[])  
  3. {  
  4. Class1 ^c = gcnew Class1();  
  5. c->Name = \"zzj\";  
  6. printf(\"%s\\n\", c->Name);  
  7. return 0;  
  8. }  

 

3 几点要记住:

1 使用#using引用C# DLL,而不是#include.我就是想当然的使用了后者,所以浪费了一上午的时间;

2 别忘了using namespace CSLib;

3 使用C++/clr语法,采用正确的访问托管对象,即:使用帽子‘^’,而不是星星‘*’。

以上是怎么调用的总结和几点需要注意的东西。对于C++调用C#的DLL程序可能还有其他的方法,仅供参考。

【编辑推荐】

  1. 浅析C++Builder调用Visual C++ DLL
  2. 简单介绍C# DLL函数
  3. C# dll注入方法之介绍
  4. ASP调用C# DLL发送邮件方法共享
  5. 学习C# DllImport相关知识

 

责任编辑:于铁 来源: 中国IT实验室
相关推荐

2009-08-03 12:57:27

C#调用DLL

2009-08-05 09:40:02

C#调用DLL函数

2009-08-05 09:30:39

C#调用DLL函数

2009-08-07 17:22:36

C#调用dll导出函数

2009-07-31 17:28:35

C#语言调用DLL

2009-09-04 17:34:11

C#CC++

2009-08-25 16:16:43

C# oledbcon

2009-08-14 17:58:05

C#接口方法

2009-08-28 15:58:54

C#窗体里调用

2009-09-02 16:36:37

C#调用Excel对象

2010-01-26 14:10:22

Visual C++

2009-08-05 17:06:39

ASP调用C# DLL

2009-08-05 16:41:36

C#调用VC dll

2009-09-02 17:16:01

冒泡排序

2009-08-05 16:29:18

C#调用C++动态链接

2010-03-05 16:56:42

Python绑定C++

2009-08-07 17:32:17

C#编译程序

2009-08-19 14:35:12

C++和C#相互调用C

2009-08-21 17:39:45

C#调用iisapp.

2009-08-05 15:04:14

C# dll注入
点赞
收藏

51CTO技术栈公众号