首先用RadASM新建一个Win32exe程序,该程序仅是一个窗口。

.data段添加
   slEdit db "EDIT",0
   adrpoem db "七月七日长生殿,夜半无人私语时。",0
   adrnxz db "C:\南乡子.txt",0

.data?段添加
   hEdit1 dd ?
   hEdit2 dd ?

把RadASM附带的三个proc加入项目;

EditSl
Read_File_In
ofCallBack
看这三个过程的代码,其作用应该大体是:创建编辑框;读文件到编辑框;

在WM_CREATE消息处理中调用,
invoke EditSl,ADDR adrpoem,50,10,350,25,hWnd,700
invoke EditSl,NULL,50,50,350,175,hWnd,700
mov hEdit2,eax
invoke Read_File_In,hEdit2,addr adrnxz

创建文本框,再创建一个文本框,然后读入C盘一个文本文件到第二个编辑框;

构建,运行;

读入文件到编辑框没有成功;

在RadASM菜单中选择 在调试器中运行,看下情况;

也看不出啥,给的文件名是正确的;

那么这两个过程是干嘛的;Read_File_In和ofCallBack;前者调用的后者;下次再搞;

全部代码如下;

.586
.model flat,stdcall
option casemap:noneinclude windows.incinclude user32.incinclude kernel32.incincludelib user32.libincludelib kernel32.libWinMain proto :DWORD,:DWORD,:DWORD,:DWORD.dataClassName db "MainWinClass",0AppName  db "Main Window",0slEdit db "EDIT",0adrpoem db "七月七日长生殿,夜半无人私语时。",0adrnxz db "C:\南乡子.txt",0.data?hInstance HINSTANCE ?hEdit1       dd  ?hEdit2     dd  ? CommandLine LPSTR ?.code; ---------------------------------------------------------------------------EditSl proc szMsg:DWORD,a:DWORD,b:DWORD,wd:DWORD,ht:DWORD,hParent:DWORD,ID:DWORD; EditSl PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD
; invoke EditSl,ADDR adrTxt,200,10,150,25,hWnd,700invoke CreateWindowEx,WS_EX_CLIENTEDGE,ADDR slEdit,szMsg,WS_VISIBLE or WS_CHILDWINDOW or \ES_AUTOHSCROLL or ES_NOHIDESEL,a,b,wd,ht,hParent,ID,hInstance,NULLretEditSl endpRead_File_In proc hEdit:DWORD,lpszFileName:DWORDLOCAL hFile :DWORDLOCAL ofs   :OFSTRUCTLOCAL est   :EDITSTREAMinvoke OpenFile,lpszFileName,ADDR ofs,OF_READmov hFile, eaxmov est.dwCookie, eaxmov est.dwError, 0mov eax, offset ofCallBackmov est.pfnCallback, eaxinvoke SendMessage,hEdit,EM_STREAMIN,SF_TEXT,ADDR estinvoke CloseHandle,hFileinvoke SendMessage,hEdit,EM_SETMODIFY,0,0mov eax, 0retRead_File_In endpofCallBack proc dwCookie:DWORD,pbBuff:DWORD,cb:DWORD,pcb:DWORDinvoke ReadFile,dwCookie,pbBuff,cb,pcb,NULLmov eax, 0retofCallBack endpstart:invoke GetModuleHandle, NULLmov    hInstance,eaxinvoke GetCommandLinemov    CommandLine,eaxinvoke WinMain, hInstance,NULL,CommandLine, SW_SHOWDEFAULTinvoke ExitProcess,eaxWinMain proc hInst:HINSTANCE,hPrevInst:HINSTANCE,CmdLine:LPSTR,CmdShow:DWORDLOCAL wc:WNDCLASSEXLOCAL msg:MSGLOCAL hwnd:HWNDmov   wc.cbSize,SIZEOF WNDCLASSEXmov   wc.style, CS_HREDRAW or CS_VREDRAWmov   wc.lpfnWndProc, OFFSET WndProcmov   wc.cbClsExtra,NULLmov   wc.cbWndExtra,NULLpush  hInstancepop   wc.hInstancemov   wc.hbrBackground,COLOR_BTNFACE+1mov   wc.lpszMenuName,NULLmov   wc.lpszClassName,OFFSET ClassNameinvoke LoadIcon,NULL,IDI_APPLICATIONmov   wc.hIcon,eaxmov   wc.hIconSm,eaxinvoke LoadCursor,NULL,IDC_ARROWmov   wc.hCursor,eaxinvoke RegisterClassEx, addr wcINVOKE CreateWindowEx,NULL,ADDR ClassName,ADDR AppName,\WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,\CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,\hInst,NULLmov   hwnd,eaxinvoke ShowWindow, hwnd,SW_SHOWNORMALinvoke UpdateWindow, hwnd.WHILE TRUEinvoke GetMessage, ADDR msg,NULL,0,0.BREAK .IF (!eax)invoke TranslateMessage, ADDR msginvoke DispatchMessage, ADDR msg.ENDWmov     eax,msg.wParamret
WinMain endpWndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM.IF uMsg==WM_DESTROYinvoke PostQuitMessage,NULL.ELSEIF uMsg==WM_CREATEinvoke EditSl,ADDR adrpoem,50,10,350,25,hWnd,700invoke EditSl,NULL,50,50,350,175,hWnd,700mov hEdit2,eaxinvoke Read_File_In,hEdit2,addr adrnxz;.ELSEinvoke DefWindowProc,hWnd,uMsg,wParam,lParam        ret.ENDIFxor eax,eaxret
WndProc endpend start

用RadASM开发窗口程序(2)相关推荐

  1. 用RadASM 开发窗口程序

    用RadASM新建一个项目:选择Win32exe模板: 一 在窗体上输出文字 在.data区添加 szText db '小狗狗,小兔兔,小猫猫 !',0 在WM_PAINT消息处理段中添加 invok ...

  2. c语言开发窗口程序,怎么用c语言做一个界面?

    https://m.zjurl.cn/answer/6697137038547747083/?app=news_article&app_id=26&share_ansid=669713 ...

  3. WIN7 UAC/结构体的Equals方法/C# 开发wince程序,窗口上总留有一块空白区域/静态构造函数...

    1. vs2005在win7下通过IIS7调试时,调用dll失败,但在XP下正常.相信是权限问题,请问应该如何解决?能不能设置dll默认以管理员身分运行? 备注:此DLL已注册成功! 回复引用 全部回 ...

  4. 【Qt】Qt 开发桌面程序 ( Qt 版本 5.14.2 | 编辑 Qt 桌面按钮控件 | 修改按钮文本 | 为按钮添加点击事件 | 系统调用 | 去掉系统调用命令窗口 )

    文章目录 一.添加按钮控件 二.修改按钮文本 三.为按钮添加点击事件 ( 弹出对话框 ) 四.为按钮添加点击事件 ( 打开记事本 ) 五.为按钮添加点击事件 ( 打开计算器 ) 六.去掉系统调用时弹出 ...

  5. Windows游戏开发感想一个完整的Windows窗口程序

    现在的互联网行业从事Windows游戏开发的人实在是太少了.一是因为门槛较高,游戏行业本来就是互联网行业最尖端的领域,要想从事游戏开发,不仅要掌握一门过硬的语言,尤其是对C++的精通,还要对算法非常精 ...

  6. linux 易语言窗口程序_易语言开发Linux程序

    令人兴奋的是易语言可以开发Linux程序,易语言是一个跨平台的开发工具,支持Windows及Linux.使用易语言开发Linux程序,您可以在Windows环境下编写基本于Windows的程序,及编写 ...

  7. c语言开发窗口应用程序

    转载于:https://blog.csdn.net/liu_rong_fei/article/details/51271901 视频下载地址:链接: http://pan.baidu.com/s/1q ...

  8. linux 易语言窗口程序_用易语言开发Linux程序的方法

    漫溃廉江欧洲恺撒哈博浑饨?农区南雄青枫沙袋风行画行全盘.赁租落子淋雨长笑林登联氨.欠身双黄妹妹稠密平摊麻乱封杀,蹦极四友萌芽布鞋魔符采制.馆子恭喜乐天内绘磨勘泪液旁出并且! 全盟女神功曹使劲信徒,用易 ...

  9. 使用IDEA开发Servlet程序

    JavaWeb系列教程,持续更新 JavaWeb-Servlet 模拟Servlet本质 使用IDEA开发Servlet程序 Servlet对象的生命周期 适配器(GenericServlet)改造S ...

最新文章

  1. zookeeper集群环境搭建
  2. 第七课.含隐变量的参数估计
  3. Windows 技术篇-设置电脑启用或禁用开机按Ctrl+Alt+Del解除锁定
  4. 图的dfs非递归_如何理解恶心的递归
  5. android下创建文件夹和修改其权限的方法
  6. I/0口输入输出实验 将P1口的某一位作为输入使用,连接一个按键,当按键按下时使发光二极管亮,否则发光二极管熄灭
  7. 服务器无法拖动文件复制文件,​IT服务器运维:艾锑人为您整理Win10系统下移动、复制、删除文件需要管理员权限的解决方法...
  8. Python HTMLTestRunner生成网页自动化测试报告时中文编码报错UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6...
  9. 用于快速排查Java的CPU性能问题(top us值过高)
  10. A simple Android example,including Intent/View/...
  11. python复盘之windows环境的安装
  12. 鼠标滚轮机械编码器原理
  13. PostgreSQL 配置文件 postgresql.conf 及 postgresql.auto.conf
  14. linux 文件锁 超时,Linux中的两种文件锁——协同锁与强制锁
  15. 【21考研】计算机/软件等专业调剂信息集合!【完结版】
  16. 01蓝桥杯特训课程第一次总结
  17. Outlook 阿里邮箱 重复收取邮件 的情况 及解决方案
  18. 岁月的剪影【四月尘土飞扬】
  19. 《创业大赛》—微电影影评
  20. 如何修复mp4a编码音频

热门文章

  1. ApplicationContext||ApplicationContext与BeanFactory的区别||SpringContextUtil类的作用
  2. Servlet流程总结
  3. pageX,clientX,offsetX,layerX的区别
  4. 测试工具 - Postman接口测试入门使用手册,Postman如何进行数据关联、自动更新cookies、简单编程
  5. Python 技术篇-连接oracle数据库并执行sql语句实例演示,python连接oracle数据库oci详细配置方法
  6. Python 技术篇-使用PyQt5库获取电脑屏幕桌面的宽、高和分辨率
  7. Python 技术篇-按任意格式灵活获取日期、时间、年月日、时分秒。日期格式化。
  8. CTFshow 命令执行 web36
  9. 常用数据库的Jdbc连接代码
  10. RANSC算法(随机样本一致性)