鱼C论坛

 找回密码
 立即注册
查看: 2950|回复: 1

[技术交流] 你知道怎么把变量变成字符串了吗?----关于wsprintf函数的用法

[复制链接]
发表于 2012-1-12 22:11:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 BinGu 于 2012-1-12 22:58 编辑

图标.rar (1.5 KB, 下载次数: 0) 之前好多人问,怎么把变量变成字符串,这个问题确实难住了好多人!因为汇编语言里面没有wprintf这样的函数,确实让人头疼!但是汇编中有另外一个函数也能做到,相必不少人已经知道哪个函数了,不错,就是wsprintf函数!

wsprintf函数的用法:简单的说就是用wsprintf函数把变量格式化之后放入到缓冲区,然后就再冲缓冲区拿出来就是字符串了!明白了吗?嘿嘿~就是这么简单~~~
;代码程序:
  1. .386
  2. .model flat, stdcall
  3. option casemap:none

  4. include windows.inc
  5. include user32.inc
  6. includelib user32.lib
  7. include kernel32.inc
  8. includelib kernel32.lib

  9. DLG_MAIN equ 1
  10. IDC_CUSTOMTEXT equ 100
  11. ICO_MAIN equ 1000h

  12. .data
  13. szText db "请输入~!", 0
  14. szCaption db "123", 0
  15. szText2 db "wsprintf函数示范", 0

  16. .data?
  17. hInstance dd ?
  18. szBuffer byte 256 dup (?)

  19. .code
  20. _ProcMain proc uses ebx edi esi hWnd, wMsg, wParam, lParam
  21. local @szBuffer[256]: BYTE

  22. mov eax, wMsg
  23. .if eax == WM_CLOSE
  24. invoke EndDialog, hWnd, NULL
  25. .elseif eax == WM_INITDIALOG
  26. invoke LoadIcon, hInstance, ICO_MAIN
  27. invoke SendMessage, hWnd, WM_SETICON, ICON_BIG, eax
  28. .elseif eax == WM_COMMAND
  29. mov eax, wParam
  30. .if ax == IDOK
  31. invoke GetDlgItemText,hWnd,IDC_CUSTOMTEXT,addr @szBuffer,sizeof @szBuffer
  32. .if @szBuffer == 0
  33. invoke SetWindowText, hWnd, addr szText2
  34. invoke MessageBox, hWnd, addr szText, addr szCaption, MB_OK
  35. .else
  36. invoke wsprintf, addr szBuffer, addr @szBuffer
  37. invoke SetWindowText, hWnd, addr szBuffer
  38. .endif
  39. .elseif eax == IDCANCEL
  40. invoke EndDialog, hWnd, NULL
  41. .endif
  42. .else
  43. mov eax, FALSE
  44. ret
  45. .endif
  46. mov eax, TRUE
  47. ret

  48. _ProcMain endp

  49. start:
  50. invoke GetModuleHandle, NULL
  51. mov hInstance, eax
  52. invoke DialogBoxParam, hInstance, DLG_MAIN, NULL, _ProcMain, NULL
  53. invoke ExitProcess, NULL
  54. end start
复制代码

;**********************************************************
//资源文件:
  1. #include                <resource.h>

  2. #define                DLG_MAIN                1
  3. #define                IDC_CUSTOMTEXT                100

  4. DLG_MAIN DIALOG 193, 180, 310, 134
  5. STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
  6. CAPTION "wsprintf函数示范"
  7. FONT 9, "宋体"
  8. {
  9.         DEFPUSHBUTTON        "Hit Me", IDOK, 58, 46, 50, 14
  10.         EDITTEXT        IDC_CUSTOMTEXT, 190, 55, 105, 12
  11. }
复制代码
想~~大家应该都能看明白吧!

注意:看代码的时候,直接点击复制代码,然后粘帖到记事本中再看,那样格式就不乱了!

                               
登录/注册后可看大图
该贴已经同步到 BinGu的微博

小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-12-1 01:51:03 | 显示全部楼层
就想问问楼主.rc资源文件如何入门?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-6 18:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表