Dear All:我想在VB中調用函數時將 UNICODE 傳至 VC DLL 中,然後再由 VC 處理後將 UNICODE 傳送回 VB,
以下是我的測試程式,但是奇怪的是在 VC DLL 調試時已經確認VB UNICODE 字符串地址中的內容已經改變了,
但當返回 VB 時再打印字符串時卻發現沒有改變.
望各位給我一點指點,如何能夠提供傳送字符串數組並修改字符串數組的方法更好(如傳遞 Dim StrArray(10) as String),在 VC DLL 中的函數
//用於測試用用途
BOOL WINAPI TestStr(IN wchar_t *pszString1)
{
wchar_t *pszModify=NULL;
MessageBoxW(NULL,pszString1,L"Dll 輸出",MB_OK);
pszModify=wcscpy(pszString1,L"VC修改了字符串");
MessageBoxW(NULL,pszModify,L"提示",MB_OK);
return TRUE;
}在 VB 中的函數聲明和調用
'試驗用
Private Declare Function TestStr Lib "F:\MCU\My Design\VC++ 6.0\Utility\Test\MyUtility.dll" (ByVal pszString1 As Long) As LongPrivate Sub Command10_Click()
Cls
          Dim Str1 As String * 50
          Str1 = "ABCDEFGH"
          Print "調用前:StrPtr:" & Hex(StrPtr(Str1))
          Print "調用前:VarPtr:" & Hex(VarPtr(Str1))
          TestStr ByVal StrPtr(Str1)
          Print
          Print "調用後:StrPtr:" & Hex(StrPtr(Str1))
          Print "調用後:VarPtr:" & Hex(VarPtr(Str1))
          Print Str1         
End Sub