C# 调用C/C++动态链接库,结构体中的char*类型
用C#掉用C++的dll直接import就可以之前有不同的类型对应,当要传递结构体的时候就有点麻烦了,这里有一个结构体里边有char*类型,这个类型在C#中调用没法声明,传string是不行的默认string是对应const char*,传stringbuilder得指定大小,不然是没法传的, 查了好久,最后只能用unsafe代码来实现了 用C/C++写一个标准的动态链接库: 头文件,定义了三个接口函数, #pragma once #define TESTDLL _declspec(dllexport) #ifndef PKI_DATA_ST #define PKI_DATA_ST typedef struct PKI_DATA_st { int size; char * value; }PKI_DATA, * PKI_PDATA; #endif extern " C " { TESTDLL double Add( double a, double b); TESTDLL double Subtract( double a, double b); TESTDLL int TestDn(PKI_DATA cert, PKI_DATA* dn); } 简单实现: #include " stdafx.h " #include " TestClass.h " double Add(