0%

C++调用C#生成的DLL

  1. 创建C#项目生成DLL
  2. 创建C++空项目引入DLL
    1. 配置项目属性
    2. 引入dll
    3. 调用C#函数

创建C#项目生成DLL

找到“类库(.NET Framework)”

image-20240104120355137

image-20240104120643067

输入以下代码:

image-20240104120843683

“批生成”

image-20240104120937749

创建C++空项目引入DLL

配置项目属性

image-20240104121202928

引入dll

image-20240104121518209

调用C#函数

用到了msclr做了字符串转换(C#用的unicode,C++这边unicode和多字节都不会出现乱码)

1
2
3
4
5
6
7
8
9
#include <iostream>
#include <msclr/marshal_cppstd.h>

int main()
{
std::cout << msclr::interop::marshal_as<std::string>(Crypto::AES::Encrypt("123123")) << std::endl;
getchar();
return 0;
}

image-20240104122451834

生成的东西有点多

image-20240104122602199