| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3945 人关注过本帖, 1 人收藏
标题:请指点VFP如何通过域名获取IP?在网上下载的程序结果是0.0.0.0,请指点多谢 ...
只看楼主 加入收藏
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
以下是引用TonyDeng在2012-10-10 02:16:13的发言:

出现乱码是因为你传入的字符串不是宽字符串,缺了字符串转换那一环。把ANSI字符串传给MessageBoxW(),函数会把字符串解释为Unicode,而不是ANSI,那当然是乱码。在汇编中不注意这一点,就会犯错,但编译器不会,它替你做了你“忘记”做的事。换句话说,汇编的一切都要你自己来,错了没人可以救你。

老大 那这个怎么办、
比如在data里定义了一句要打印的字符串: szText       db 'Hello, World!', 0
显然这个是ANSI编码 机器也会这么传, 怎么人为的定义unicode 呢?
真的如Z版所说有的编译器写死了 ? 而且貌似那个__UNICODE__ equ 1也不管用 我试过了。

梅尚程荀
马谭杨奚







                                                       
2012-10-10 17:39
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
如果你那汇编语言本身支持Unicode,自然有语法支持。如果不是,你传MessageBoxW()也不行吧。试试逐个字符传,每个字符是16位的,按照高头或低头约定,在对应位补零,结束空字符也是两个零,这样传一串数组过去。

授人以渔,不授人以鱼。
2012-10-10 18:42
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
以下是引用TonyDeng在2012-10-10 18:42:24的发言:

如果你那汇编语言本身支持Unicode,自然有语法支持。如果不是,你传MessageBoxW()也不行吧。试试逐个字符传,每个字符是16位的,按照高头或低头约定,在对应位补零,结束空字符也是两个零,这样传一串数组过去。

去试了下 还真的就像你说的那样 发个图能看到对比 一个直接传字符串 一个传对应的Unicode编码
图片附件: 游客没有浏览图片的权限,请 登录注册


老大 你有unicode 16 和 32 编码 的对应表吗?

梅尚程荀
马谭杨奚







                                                       
2012-10-10 21:12
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
16是使用了代码页的,不是简单的对应表,Windows API中有现成的转换函数,调用即可。

授人以渔,不授人以鱼。
2012-10-10 21:16
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
以下是引用TonyDeng在2012-10-10 21:16:09的发言:

16是使用了代码页的,不是简单的对应表,Windows API中有现成的转换函数,调用即可。

那么我上面那个程序里能用那个现成的   API来转换自己想要的字符串吗? 是那个API函数啊?

梅尚程荀
马谭杨奚







                                                       
2012-10-10 21:18
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
能用到反汇编里面那个 MultiByteToWideChar吗? 怎么用?

梅尚程荀
马谭杨奚







                                                       
2012-10-10 21:22
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你那只是手工制作字符串,最后呈现的效果与Windows当前的代码页也有关。API函数就是昨天专门让你留意那个,查MSDN SDK文档,VS帮助中也有。

授人以渔,不授人以鱼。
2012-10-10 21:23
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
以下是引用TonyDeng在2012-10-10 21:23:07的发言:

你那只是手工制作字符串,最后呈现的效果与Windows当前的代码页也有关。API函数就是昨天专门让你留意那个,查MSDN SDK文档,VS帮助中也有。

老大 敬 俺搞出来拉 哈哈
图片附件: 游客没有浏览图片的权限,请 登录注册


梅尚程荀
马谭杨奚







                                                       
2012-10-10 21:37
快速回复:请指点VFP如何通过域名获取IP?在网上下载的程序结果是0.0.0.0,请指点 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031928 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved