【高分】VB到底应该用Unicode版API还是ANSI版的?

是是非非 2008-12-23 06:34:04
加精
受一些文章的影响,我把所有的API调用都申明为Unicode版的,并且使用了TLB

可最近接连遇到API的版本问题
首先是DrawTextW和DrawTextA,用DrawTextW怎么折腾都是乱码,用DrawTextA轻松搞定
接着就是叶帆的SubClass类,我用TLB里面定义的Unicode版API替换了他用Delcare声明的API
导致没有任何提示崩溃~折腾一天后终于找到问题了。
貌似跟GetModuleHandleA,GetWindowLongA,SetWindowLongA,CallWindowProcA这些不涉及字符串操作的API有关
崩溃了~
接着又发现Shell_NotifyIcon设置托盘图标的Tip也会乱码!!!


这里有个图片


还有这么个图



想请教一下,到底是用Unicode好呢还是ANSI好 (也许这不应该是个问题)
用Unicode版API,到底该怎么处理编码?
...全文
1668 75 打赏 收藏 转发到动态 举报
写回复
用AI写文章
75 条回复
切换为时间正序
请发表友善的回复…
发表回复
ivu179 2011-05-14
  • 打赏
  • 举报
回复
冒泡一下 潜了很久了
robintt 2009-09-13
  • 打赏
  • 举报
回复
看不明白。。。。。。。。。。。郁闷啊。
pusiyu 2009-07-09
  • 打赏
  • 举报
回复
没看明白,呃,学习ING
skyell 2009-04-29
  • 打赏
  • 举报
回复
此贴很有深度,刻苦学习~~~
longhr 2008-12-29
  • 打赏
  • 举报
回复
你也没说vb的版本呀
神州北望 2008-12-27
  • 打赏
  • 举报
回复
学习了,都是经验之谈啊。
wg1099 2008-12-26
  • 打赏
  • 举报
回复
接分.
liwei222 2008-12-26
  • 打赏
  • 举报
回复
用unicode版API,不仅调用的API要用*W类型的,所有字符串资源、变量都要是WChar类型
oaixiangpeng 2008-12-25
  • 打赏
  • 举报
回复
fjhfgjfjh
best738 2008-12-25
  • 打赏
  • 举报
回复
补明白 ...太难的..看不懂...学习学习
derelictangel 2008-12-25
  • 打赏
  • 举报
回复
接分.


PS:
我的目标是 ---->

^_^
是是非非 2008-12-25
  • 打赏
  • 举报
回复
没人来接分吗…………

准备结贴了
evjen 2008-12-25
  • 打赏
  • 举报
回复
路过学习...
icansaymyabc 2008-12-25
  • 打赏
  • 举报
回复
VB6/VBA/VBS 是同样的,都是 Unicode 内核,ANSI 界面!
不要奇怪,Unicode是大势所趋,VB6 采用 Unicode 内核是为了代表最先进的文化发展方向;
但 VB6 发行时主流的Win95操作系统是 ANSI 内核的,为了能在Win95/98中使用,VB6全面采用ANSI界面,只有这样才能代表最广大人民群众的利益。
所以 VB6 的 String 传给API时会自动被转化为 ANSI string,从API返回后又被自动转换为 unicode String。

所以用 VB6/VBA/VBS 必须用 ANSI 版的API。
如果有些API只有Unicode版本,你必须自己完成这样的工作才能使用:
1 将 VB6 的字符串转化成 unicode 内码的字节数组
2 把字节数组传给 unnicode 界面的API
3 把API处理结果又自行转化为 String。


VB.NET 是和 VB6 完全不同的东东,是 Unicode 内核的,但是有 ANSI 和 Unicode 两种界面。
cyfxbyfx 2008-12-25
  • 打赏
  • 举报
回复
楼主伟大!支持!顺便接分!
qq738797238 2008-12-25
  • 打赏
  • 举报
回复
顶死,死顶,顶顶顶
yxd_hangar 2008-12-25
  • 打赏
  • 举报
回复
oo
ddnetplay 2008-12-25
  • 打赏
  • 举报
回复
路过帮顶.
hxl137578112 2008-12-24
  • 打赏
  • 举报
回复
.............
东方之珠 2008-12-24
  • 打赏
  • 举报
回复
哈哈,接点分分分分分分......
加载更多回复(55)

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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