WIN32汇编显示乱码问题 WSPRINTF
来源:互联网 发布:淘宝信息管理系统要求 编辑:程序博客网 时间:2024/05/19 00:38
学习了WIN32汇编都有几天了,觉得比C的WIN32好学,比较简洁,能够很好的了解WINDOWS的一些机制
在QQ群上也提问过了,但答的人极少(可能是问题比较简单吧),我这等菜鸟又不能理解高人们的飘逸答法。。。。郁闷
在网上搜到了一段比较有价值的WSPRINTF函数的说明:
在C语言中格式化字符串可以使用printf,但是在WINDOWS编程设计中却行不通了,但是却有变通的方法,那就是用 wsprintf这个函数 它的格式如下:
wsprintf(缓冲区,格式,要格式化的值);
第一个参数是字符缓冲区,后面是格式字符串,wsprintf不是将格式化结果写到标准输出,而是将其写入缓冲区中,该函数返回该字符串的长度。
比如我们想通过MessageBox来输出一个整形变量的值,可以用以下代码实现:
char szBuffer[100];
ing number=100;
wsprintf(szBuffer, “%d”,number);
MessgaeBox(NULL,szBrffer,TEXT(“格式化字符串”),0);
这个函数除了将内容格式化输出到第一个参数所提供的字符串缓冲区以外,其它功能与printf函数相同
wsprintf对应的字符串是宽字符型wchar_t,即一个字符占用2个字节的内存空间.
sprintf对应的字符串是字符类型为char,几一个字符占用1个字节的内存空间.
sprintf是用于对ASCII码的127个字符进行操作,wsprintf是对UNICODE的多语言字符进行操作.
如:
sprintf(buffer, "ascii");
wsprintf(buffer, L"unicode");
下面是我自己写的程序:
.386
.model flat,stdcall
option casemap:none
include windows.inc
include kernel32.inc
include user32.inc
includelib kernel32.lib
includelib user32.lib
.data
Caption db "GetTime",0
ipFmt db "%d",0
.data?
lpSystemTime SYSTEMTIME <>
ipOut dd ?
;ipOut dd 100 dup(?);定义100个字节的数组
.code
start:
invoke GetLocalTime,addr lpSystemTime
movzx eax,lpSystemTime.wYear
invoke wsprintf,addr ipOut,addr ipFmt,eax
invoke MessageBox,NULL,addr ipOut,addr Caption,MB_OK
invoke ExitProcess,NULL
end start
- WIN32汇编显示乱码问题 WSPRINTF
- WIN32汇编显示一个窗口
- win32汇编显示一个窗口
- Win32和汇编接口问题
- 气泡显示的win32汇编源码
- WIN32汇编产生的小问题总结
- Cocos2d-x win32显示中文乱码解决方法
- cocos2d-x win32显示中文乱码解决方法
- Win32 汇编
- wsprintf
- wsprintf
- wsprintf
- wsprintf
- wsprintf
- wsprintf使用过程中的问题
- wsprintf使用过程中的问题
- xmlhttp显示乱码问题
- 字符显示乱码问题
- VFP中连编后运行提示数据表是临时表无法更新
- 我会尽快按您的指示去做某些事情,“农业时代"的用语该信息化了!
- CStdioFile总结
- 网页打不开
- using namespace std 详解
- WIN32汇编显示乱码问题 WSPRINTF
- 送给2009依然单身的朋友
- 数字的格式化
- memset使用注意
- 序列化 (serialization)
- VC6.0编译msdn例子时找不到mfc42ud.dll的问题之解决
- 升级试用版的vs2008
- java:数据库查询结果类:ResultMap 屏蔽数据库设计细节,减弱强联系。
- window.open全屏