●!!DELPHI函数的UNICODE参数问题

PLAYROME 2010-07-31 11:58:27
使用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
...全文
92 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
newfang 2010-08-01
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 playrome 的回复:]
引用 1 楼 helyna 的回复:
VB中的字符串有其自己的定义格式


现在就是要传递中文字符
[/Quote]


为什么“就是要”,传递unicode有什么不同吗?
Frank.WU 2010-08-01
  • 打赏
  • 举报
回复
你要先确定用 delphi 写个 exe 程序能否正常调用你的 dll,如果 delphi 写的 exe 正常能呼叫 dll,
则建议在 VB 论坛提问如何调用 delphi 写的 dll。
xuzhongnan001 2010-08-01
  • 打赏
  • 举报
回复
顶起 我也没分了- -
hucaiyu2009 2010-08-01
  • 打赏
  • 举报
回复
没分了 顶你一下
PLAYROME 2010-08-01
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 kye_jufei 的回复:]
引用 3 楼 playrome 的回复:
引用 1 楼 helyna 的回复:
VB中的字符串有其自己的定义格式


现在就是要传递中文字符


將中文字符轉換成UNICODE才可以。。。
[/Quote]

因为现在要解决的就是中文字符。

还有 中文字符不是UNICODE字符码? 初学DELPHI请多指教,谢谢。

测试传递字符,A,也不行
kye_jufei 2010-07-31
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 playrome 的回复:]
引用 1 楼 helyna 的回复:
VB中的字符串有其自己的定义格式


现在就是要传递中文字符
[/Quote]

將中文字符轉換成UNICODE才可以。。。
PLAYROME 2010-07-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 helyna 的回复:]
VB中的字符串有其自己的定义格式
[/Quote]

现在就是要传递中文字符
kye_jufei 2010-07-31
  • 打赏
  • 举报
回复
不要傳遞中文字符串,直接傳一個UNICODE編碼即可。。。
helyna 2010-07-31
  • 打赏
  • 举报
回复
VB中的字符串有其自己的定义格式

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧