作者ireullin (raison detre)
看板C_Sharp
标题[问题] c# 与c++在传递资料时型态的转换是否有所差异
时间Wed Jul 11 15:29:33 2007
请问一下各位大大
我今天有一个使用c++写的
加密用的dll档
使用sha1的加密技术
cpp档的内容为
TSGENCODE_API char* fnTSGencode(char *password)
{
unsigned char output[MAX_ECODE_SIZE] = "";
sha1_base64_encode(output,(unsigned char *)password,strlen(password));
return (char *) output;
}
我在c++当中呼叫这个dll档
所输出的加密结果都相同
但是我在c#中呼叫这个dll档结果却与c++呼叫的结果有所差异
差异如下
Ex.1
??pNmRCUBoQFBlbdLnWnECjFE= (c#)
Q3XmpNmRCUBoQFBlbdLnWnECjFE= (c++)
Ex.2
H?IpZOmXzK/Z2YEppq9sZIztE= (c#)
JrE3IpZOmXzK/Z2YEppq9sZIztE= (c++)
c++ 与c#计算出来的结果前四码都不同,但是後面都一样
我c#中的程式码是
[DllImport( "TSGencode.dll",EntryPoint="fnTSGencode")]
public static extern string TSGencode(char[] ae);
请问什摸问题...有人遇过嘛
c# 与c++在传递资料时型态的转换是否有所差异
(我试过将char[] ae 改为 string ae 或者是在char[] ae 後面在加个'\0' ,但是他算出
来的结果都相同 )
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.220.110.100
1F:推 cole945:因为你的C++程式根本就写错了... 07/11 18:29
2F:→ ireullin:请问错在?... 07/12 10:13