首页
社区
课程
招聘
[旧帖] [求助]关于Windows API的ANSI版本和UNICODE版本 0.00雪花
发表于: 2009-5-4 23:31 4813

[旧帖] [求助]关于Windows API的ANSI版本和UNICODE版本 0.00雪花

2009-5-4 23:31
4813
Windows API函数中,针对字符串的函数都有ANSI版本和UNICODE版本。有个问题是在VB中调用API函数时,什么时候需要调用ANSI版本,什么时候需要调用UNICODE版本。
例如:
API函数GetWindowTextLength,有GetWindowTextLengthA和GetWindowTextLengthW,在调用时该如何判断何时使用GetWindowTextLengthA,何时使用GetWindowTextLengthW。请高手帮忙解答。
小弟在这里多些各位高手了。

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 1753
活跃值: (840)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
2
那看你``的字符串的类型~而定`
用char声明
还是WCHAR声明
如果是文本文件``开头两个字节是0xff 和0xfe则是Unicode 否者是ANSI,就要选者对应版本的函数
或者用 IsTextUnicode进行判断~~
2009-5-5 01:24
0
雪    币: 221
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
在调用GetWindowTextLength之前我并不知道窗体使用的字符窜是ANSI还是UNICODE。所以我没办法用IsTextUnicode来判断。尤其是像类似于GetWindowTextLength这样的API函数,返回值是字符的个数,可是在调用这个函数之前我并不知道当前给定hwnd的窗体,是使用ANSI编码,还是UNICODE编码。
而且我试过,对于GetWindowTextLength这个API函数,我使用的UNICODE版本,即GetWindowTextLengthW,对于同一个hwnd的窗体,第一次运行这个函数的时候返回值是0,而再次执行后返回值就是一个很大的数值了。不晓得是什么原因,请高手解答。
2009-5-5 08:59
0
游客
登录 | 注册 方可回帖
返回
//