作者clv (給真相=封鎖)
看板C_and_CPP
標題Re: [問題] VC++寫成的DLL VB6.0呼叫會有問題
時間Tue Feb 18 01:01:03 2014
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
→ freaky:(ByVal str As String) 02/18 02:49
→ freaky:要用x.AllocSysString();才對 02/18 02:50
→ freaky:VB會幫你free test 02/18 02:54
→ clv:x.AllocSysString()會只有一個字節 我用SysallocStringByteLen 02/18 23:22