一.不包含有结构体
只通过函数参数传,遵循如下即可
1.作为输入参数转为char[],通过Encoding类对这个string[]进行编码后得到的一个char[]
2.作为输出参数转为byte[],通过Encoding类对这个byte[]进行解码,得到字符串
例子:
int __stdcall SP_GetIncrementCOMPortWithFilterTEST1(char* testarg) {
printf("testarg==%s", testarg);
return 0;
}
C#中这样定义即可
[DllImport("Dll1.dll")]
public static extern int SP_GetIncrementCOMPortWithFilterTEST2(char[] test);
二.结构体中含有char**
c++如下:
typedef struct
{
unsigned int m_uCount;
SP_FILTER_TYPE_E m_eType;
char** m_ppFilterID;
//bool* m_bInterface;
} SP_COM_FILTER_LIST_S;
int __stdcall SP_GetIncrementCOMPortWithFilterTEST(SP_COM_FILTER_LIST_S* pCOMFilter) {
std::cout << "SP_GetIncrementCOMPortWithFilterTEST success" << std::endl;