一、设置C#
1、编写c#程序:
1)新建C#的类库,如步骤1
2)命名为:ClassLibrary1,如步骤2

2、新建后代码如下
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
namespace ClassLibrary1
{
public class Class1
{
public interface IMyClass
{
void Initialize();
void Dispose();
int Add(int a, int b);
}
public class MyClass : IMyClass
{
public void Initialize()
{
}
public void Dispose()
{
}
public int Add(int a, int b)
{
return a + b;
}
}
}
}
3、点击属性

4、选择 程序集信息->使程序集COM可见


5、选择生成。
设置目标平台为x64
设置输出路径为c++程序的输出路径
设置为COM互操作注册

C#程序设计完成。
二、设置C++
1、选择C++空项目,设置名称和路径

2、代码如下:
#include <iostream>
using namespace std;
#import "../x64/Debug/ClassLibrary1.tlb"
int main()
{
CoInitialize(NULL); // 初始化com环境
ClassLibrary1::IMyClassPtr p(__uuidof(ClassLibrary1::MyClass));
cout << p->Add(3, 4) << endl;
system("pause");
return 0;
}
3、设置环境
#import可能报错
右键点击项目名->属性->c/c+±>常规,将多处理器编译设置为否。


三、运行
运行结果如下:

本文介绍了如何使用C#创建一个COM可见的类库,并实现了一个简单的数学运算接口。接着在C++项目中,通过COM调用这个C#组件,实现了跨语言的函数调用。主要涉及COM组件、接口定义、C#程序集配置以及C++代码的导入和环境设置。
3010

被折叠的 条评论
为什么被折叠?



