c++ Call C# dll

用C++写Dll需要很多规范,而在.Net平台下通过c#实现的Dll则要方便许多。但在c++中调用c#写的Dll就得注意一下。不能像引用C++本身的DLL一样。这里讲一下应该注意的细节:(以VS2005为例,VS2008类似) 1.因为用c++本身 的默认配置是没有公共语言运行库支持的,所以首先的修改配置,点击项目->属性->配置属性->常规.在公共语言运行库支持中选择"公共语言运行库支持(/clr)". 2.引用Dll文件和命名空间. 如果我们要引用一个命名空间为UranusNet,文件名为UranusNet.dll的文件.则引用方法为: #using "../debug/UranusNet.dll" (这里用using而非include) using namespace UranusNet; 记得要将dll文件拷贝到对应的目录下 3.调用方法 加入要调用UranusNet命名空间下的UGSInfo类.则代码如下所示:(假设该类有logIn和writeBlog两个方法) UGSInfo ^ugs = gcnew UGSInfo();(这里要用^而不是*,gcnew而非new) if(ugs->logIn("abc","123")) ugs->writeBlog("很好", "很强大"); democode: 1 创建C# DLL,需要指定应用类型为“类库”,代码: namespace CSLib   {   public class Class1   {   private string name;   public string Name   {   get   {   return name;   }   set   {   name = /"Your Name: /" + value;   }   }   }   }   2 C++客户程序,是个控制台应用,代码: #using /"..//debug//CSLib.dll/"   using namespace CSLib;   int _tmain(int argc, _TCHAR* argv[])   {   Class1 ^c = gcnew Class1();   c->Name = /"zzj/";   printf(/"%s/", c->Name);   return 0;   }   3 几点要记住:   1 使用#using引用C# DLL,而不是#include.我就是想当然的使用了后者,所以浪费了一上午的时间;   2 别忘了using namespace CSLib;   3 使用C++/clr语法,采用正确的访问托管对象,即:使用帽子‘^’,而不是星星‘*’。 以上就是在c++调用C#的Dll的要点。由于c#的简洁方便的特点,所以我们可以用C#快速的实现DLL文件。 当然一些更底层的功能还得用c++实现。^_^
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值