[問題] c# 與c++在傳遞資料時型態的轉換是否有所差異

看板C_Sharp (C#)作者 (raison detre)時間18年前 (2007/07/11 15:29), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串1/1
請問一下各位大大 我今天有一個使用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
因為你的C++程式根本就寫錯了...
07/11 18:29, 1F

07/12 10:13, , 2F
請問錯在?...
07/12 10:13, 2F
文章代碼(AID): #16b8RUag (C_Sharp)
文章代碼(AID): #16b8RUag (C_Sharp)