C++和C_相互调用dll.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C++和C_相互调用dll.pdf

一、在 VS2005 中,C#编写 DLL 并使用 C++调用 (1)C#编写 DLL 程序 建立 C#编写的 DLL 程序 AddDll, 1项目类型为:类库 程序代码: using System; using System.Collections.Generic; using System.Text; namespace AddDll { public class Add //类必须为 public { public int iadd(int a, int b) //方法也必须为public { int c = a + b; return c; } } } (2 )C++编写调用程序 建立 C++ 的Win32 控制台应用程序 UseDll , 1项目类型为:Win32 控制台应用程序. 2配置:右键点击解决方案资源管理器中的 UseDll ,选择 “属性”,将公共语 公共语言运行库支持(/clr) ” 言运行库支持设置为 “ 程序代码: #include stdafx.h #include stdio.h #using ..\debug\AddDll.dll //注意,要让程序找到dll 文件 using namespace AddDll; int _tmain(int argc, _TCHAR* argv[]) { int result; Add ^add = gcnew Add(); //注意此处的托管指针 result = add-iadd(10,90); printf(%d,result); scanf(%s); return 0; 如果操作步骤正确的话,就基本上没有什么问题. 二、在 VS2005 中 C#编写的 COM 组件,使用VC6.0 或 vc2005 调用 (1)VS2005 中使用 C#编写 COM 组件 1建立 C#编写的 COM 组件,项目类型为类库 2配置:右键点击解决方案资源管理器中的 AddCom,选择 “属性”,选择 “生成”,选择 “为 COM Interop 注册(_P)” 3打开 AssemblyInfo.cs 文件,设置[assembly: ComVisible(true)] 这样就可以生成 AddCom.tlb 文件 程序代码: using System; using System.Collections.Generic; using System.Text; using System.Runtime.InteropServices; //如果对 C#比较熟悉的读者可能很快就明白,不熟悉的读者可能要多摸索几遍 namespace AddCom { //可以通过//菜单的 “工具/guid 生成”。 //注意要选择 Define Guid{….}格式,并全//部保存下来。 // 因为在做VC 程序///////// 的时候要用到的。 [Guid(298D881C-E2A3-4638-B872-73EADE25511C)] public interface AddComInterface { [DispId(1)] //至于此处是什么作用,我也不太明白 int iadd(int a, int b); [DispId(2)] string stradd(string strA, string strB); } [Guid(2C5B7580-4038-4d90-BABD-8B83FCE5A467)] [ClassInterface(ClassInterfaceType.None)] public class AddComService : AddComInterface { public AddComService() { } public int iadd(int a, i

文档评论(0)

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档