有些C++项目中也用了C语言.c,用方法一就无法使用【不能使用 /clr 选项编译 C 文件】。就用方法2。
方法二:COM方式
参考: https://www.5axxw.com/questions/content/2ozion
1.C# 生成dll
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;
}
}
}
}
编译正常,C# dll就完成了。
2.C++调用示例
#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;
}
文章来源:https://www.toymoban.com/news/detail-630667.html
文章来源地址https://www.toymoban.com/news/detail-630667.html
到了这里,关于C#生成dll给c++调用 方法二COM方式 vs2022 NO Make Assembly COM-Visible选错了 不需要clr的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!