[問題] c# 與c++在傳遞資料時型態的轉換是否有所差異
請問一下各位大大
我今天有一個使用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
推
07/11 18:29, , 1F
07/11 18:29, 1F
→
07/12 10:13, , 2F
07/12 10:13, 2F
C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章