问题描述
[DllImport("DecryptApi.dll",CharSet=CharSet.Unicode)]publicstaticexternvoidEncryptCOM(stringdata1,byte[]InputData,intInputLen,[MarshalAs(UnmanagedType.LPArray,SizeParamIndex=1)]byte[]OutputData);
outputdata是返回字节,请教程c/c++如何写法,不知道写样写对吗如何返回outputdataextern"C"__declspec(dllexport)voidEncryptCOM(char*data1,unsignedcharinputdata,intinputlen,unsignedchar*outputdata);
voidEncryptCOM(char*data1,unsignedcharinputdata,intinputlen,unsignedchar*outputdata){//std::stringencoded=base64_encode(encrypt,s[0]);//unsignedchar*encrypt加密后的字节中可能有'';stringkey=string(data1);stringresult=xxtea_encrypt(changeCharToString(inputdata),key);//接口1unsignedchardate_uchar[1024];strcpy((char*)date_uchar,(constchar*)result.c_str());outputdata=date_uchar;}
解决方案
解决方案二:
原char类型,c#中你还应该用char类型原指针char*类型,如果长度不变,c#中用string类型,长度变化的,用StringBuilder类型
解决方案三:
我的意思想问C#这样子写。c++如何写。C++代码应该有问题的