- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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
您可能关注的文档
最近下载
- 人教版九年级数学上册全套课件-(2).ppt VIP
- Q_SY 10016-2023 数据湖管理规范.pdf VIP
- 第5课 动荡变化中的春秋时期【课件】(共27张PPT)(含音频+视频).pptx VIP
- 05G525 吊车轨道联结及车挡(适用于钢吊车梁).pdf
- GNSS测量 GNSS测量 RTK线路放样1.ppt VIP
- 医院信息数据管理制度.docx VIP
- 2025年申论答题卡(练习标准)打印版 .pdf VIP
- 初二作文范文.docx VIP
- 《课外古诗词诵读》之《 赠从弟》-八年级语文上册同步教学精选课件(统编版).pptx VIP
- GNSS定位测量 RTK放样 实验实习实训-GPS-RTK点放样.doc VIP
文档评论(0)