Re: [問題] VC++寫成的DLL VB6.0呼叫會有問題

看板C_and_CPP作者 (給真相=封鎖)時間10年前 (2014/02/18 01:01), 編輯推噓0(004)
留言4則, 2人參與, 最新討論串2/2 (看更多)
VC2008 程式大概長這樣 extern "C" _declspec(dllexport) BSTR __stdcall ToServer1(const char *str); { CString x; x = "aaaa"; Return SysallocString((BSTR)x.GetString()); } vb去呼叫 可以呼叫 但有一些問題想請教各位 vb是用 test$ = ToServer1("test");接 1 不知為啥咩 有時候 後面會出現亂碼 我VC字元集 未設定 用 x.AllocSysString() 會只回一個字元 有想過用 SysallocStringLen 但CString的長度取出來都是錯的 還在想要如何處理 2 因為是直接Return SysallocString 所以該如何去free它呢 希望有人可以給我一個方向 感恩 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 180.177.162.16

02/18 02:49, , 1F
(ByVal str As String)
02/18 02:49, 1F

02/18 02:50, , 2F
要用x.AllocSysString();才對
02/18 02:50, 2F

02/18 02:54, , 3F
VB會幫你free test
02/18 02:54, 3F

02/18 23:22, , 4F
x.AllocSysString()會只有一個字節 我用SysallocStringByteLen
02/18 23:22, 4F
文章代碼(AID): #1J0a1I64 (C_and_CPP)
文章代碼(AID): #1J0a1I64 (C_and_CPP)