使用DELPHI写了一个DLL,其中有一个非常简单的测试函数function   test(Str :PWideChar):integer;stdcall;export;
 var ws:wideString;
  begin
         ws:=Str;
         if (Str='中') then ShowMessage('ok');
         ShowMessage(ws);
        result :=1;
 end;然后使用VB调用
dim ls_str as string
ls_str = "中"
MsgBox test(ls_str)但是这样 if (Str='中') then ShowMessage('ok'); 判断并不相等且每次ShowMessage(ws);的值都不一样,VB的string是双字节的,unicode参数应该如何定义和处理呢?谢谢已经发了一个同样问题的帖子,一起结分:http://topic.csdn.net/u/20100730/22/a4588d71-c506-4a81-a6c5-33100b91ab49.html

解决方案 »

  1.   

    不要傳遞中文字符串,直接傳一個UNICODE編碼即可
      

  2.   


    將中文字符轉換成UNICODE才可以
      

  3.   

    为什么“就是要”,传递unicode有什么不同吗?
      

  4.   


    因为现在要解决的就是中文字符。还有 中文字符不是UNICODE字符码? 初学DELPHI请多指教,谢谢。测试传递字符,A,也不行
      

  5.   

    你要先确定用 delphi 写个 exe 程序能否正常调用你的 dll,如果 delphi 写的 exe 正常能呼叫 dll,
    则建议在 VB 论坛提问如何调用 delphi 写的 dll。