问题描述
用c语言编写了一个des加密算法,并生成了dll,想用c#做个窗口调用C语言的dll中voidencrypt(chardata[64],charkey[64],charcipher[64])这个函数,该怎么办?已经试过各种,困难重重啊!求助!!!
解决方案
解决方案二:
引用楼主qq_15397417的回复:
用c语言编写了一个des加密算法,并生成了dll,想用c#做个窗口调用C语言的dll中voidencrypt(chardata[64],charkey[64],charcipher[64])这个函数,该怎么办?已经试过各种,困难重重啊!求助!!!
[DllImport("C++函数所在的.dll",EntryPoint="encrypt")]publicstaticexternvoidencrypt();//调用使用String或者StringBuilder类型的参数encrypt(string,string,string);//或者encrypt(StringBuilder,StringBuilder,StringBuilder);
解决方案三:
[DllImport("C.dll")]publicstaticexternvoidencrypt(byte[]bytes1,byte[]bytes2,byte[]bytes3);调用:byte[]bytes1=newbyte[64];byte[]bytes2=newbyte[64];byte[]bytes3=newbyte[64];encrypt(bytes1,bytes2,bytes3);data=Encoding.UTF8.GetString(bytes1);key=Encoding.UTF8.GetString(bytes2);cipher=Encoding.UTF8.GetString(bytes3);//注意去空格,如果byte[]没有64位,那么末尾会有空格
时间: 2024-10-29 00:11:02