鱼C论坛

 找回密码
 立即注册
查看: 18650|回复: 18

[技术交流] 用汇编写界面,你们都用什么软件

[复制链接]
发表于 2015-3-17 20:04:53 | 显示全部楼层 |阅读模式
50鱼币
悬赏,大家来谈论讨论你们用汇编写界面的时候都用什么软件。

只要参与讨论,都有鱼币可以拿哟。


最佳的赏鱼币50

最佳答案

查看完整内容

我前期是用NotePad++的,但是没有配置任何的代码提示等,写起程序来,相当麻烦,累,自己写nmake文件编译链接。后来使用RadAsm,顿时发现,IDE的开发环境对编写此类代码太有帮助了。推荐使用RadAsm!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-3-17 20:04:54 | 显示全部楼层
我前期是用NotePad++的,但是没有配置任何的代码提示等,写起程序来,相当麻烦,累,自己写nmake文件编译链接。后来使用RadAsm,顿时发现,IDE的开发环境对编写此类代码太有帮助了。推荐使用RadAsm!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-3-17 20:36:48 | 显示全部楼层
汇编写界面得多麻烦啊:funk:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-3-17 20:44:25 | 显示全部楼层
fangming 发表于 2015-3-17 20:36
汇编写界面得多麻烦啊

用Win32的,不麻烦。跟SDK有类似
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-3-17 20:52:35 | 显示全部楼层
以前用易语言写(用这个东西写出来的真的能叫程序吗)现在准备从头开始学习c语言。:ton:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-3-17 23:36:30 | 显示全部楼层
本帖最后由 、м゛GHBOY 于 2015-3-17 23:37 编辑

笔者在学习Windows下的图形界面应用程序(GUI,Graphical User Interface)的时候碰到的第一个麻烦就是架设WIN32汇编程序的开发环境,在这里笔者愿意和大家分享这段经历。

笔者认为大家应该首先具备下列概念和文件:

  • 操作系统:首先大家应该具备Windows98以上操作系统,看起来这并不是什么难事
  • 文本编辑程序:你可以选择Windows自带的记事本,或者是Ultraedit,而笔者却独钟于VisualStudio
  • 应用程序编程接口(API, Application Programming Interface),它是一些类型、常量和函数的集合,它提供了直接通过编程操纵对象的途径
  • Win32平台软件开发包(Win32 Platform SDK),这一些用于创建Windows应用程序的工具软件、库文件、代码例程和帮助文档的集合。Microsoft提供Platform SDK的免费下载http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en
  • Microsoft汇编器(ML,它是Make.exe和Link.ext首字母的缩写),可以用它汇编并链接一个或多个汇编程序源文件,它的命令行参数选项可以在Microsoft MASM手册中查到。(遗憾的是该手册自1992年以后就没有再版过了,读者只能下载其电子版)
  • 资源文件,它是各种各样的元素集合,这些元素包括向用户提供信息的界面元素(如位图、图标或光标),含有应用程序所需数据的自定义资源,由安装 API 使用的版本资源,以及菜单和对话框资源。它为程序的逻辑界面与资源界面隔离提供了较好的实现。更多的信息读者可以参考MSDN: http://msdn.microsoft.com/zh-cn/library/zabda143(VS.80).aspx
  • 预定义头文件(RESOURCE.H):它提供了资源标示符的定义
  • 资源编译器:RC.EXE将编写的资源脚本文件(*.RC)编程成资源文件(*.RES,然后由CVTRES.EXE转换为OBJ文件

好了,现在我们开始架设WIN32汇编程序的开发环境

  • Visual Studio是个不错的开发环境,《Intel汇编语言程序设计》的作者Kip R.Irvine就是在这个平台上开发和教学的,此平台的架设读者可以参看以下内容http://blog.csdn.net/KingWolfOfSky/archive/2009/07/12/4342511.aspx
  • Microsoft也提供了试用版(90天)的下载http://msdn.microsoft.com/zh-cn/sqlserver/aa700831.aspx
  • 但仍然有很多人是不愿意安装几个G的VisualStudio,那么Microsoft提供了MASM32的下载http://www.masm32.com/masmdl.htm

安装完成以后在Masm32文件夹下新建一个“MyDocument”文件夹,将下面代码放入其中


;
===============================================
        .486
        .model flat,stdcall
        option casemap:none   
        include \masm32\include\windows.inc
        include \masm32\include\user32.inc
        include \masm32\include\kernel32.inc
        include \masm32\include\gdi32.inc
        includelib \masm32\lib\user32.lib
        includelib \masm32\lib\kernel32.lib
        includelib \masm32\lib\gdi32.lib
; -----------------------------------------------
        WinMain PROTO :DWORD,:DWORD,:DWORD,:DWORD
        WndProc PROTO :DWORD,:DWORD,:DWORD,:DWORD
; ===============================================
.data
        hInstance     dd 0
        hWnd          dd 0
        szClassName   db "Demo",0
        szDisplayName db "My Demo",0
; ===============================================
.code
start:
        invoke GetModuleHandle,0
        mov hInstance,eax
        invoke WinMain,hInstance,0,0,SW_SHOWDEFAULT
        invoke ExitProcess,eax
; ===============================================
WinMain proc hInst:DWORD, hPrevInst:DWORD,
        CmdLine:DWORD, CmdShow:DWORD
        LOCAL wndclass:WNDCLASSEX
        LOCAL Msg:MSG
        mov wndclass.cbSize,sizeof WNDCLASSEX
        mov wndclass.style,CS_HREDRAW or CS_VREDRAW or CS_BYTEALIGNWINDOW
        mov wndclass.lpfnWndProc,OFFSET WndProc
        mov wndclass.cbClsExtra,0
        mov wndclass.cbWndExtra,0
        mov eax,hInst
        mov wndclass.hInstance,eax
        mov wndclass.hbrBackground,COLOR_WINDOW+1
        mov wndclass.lpszMenuName,0
        mov wndclass.lpszClassName,OFFSET szClassName
        invoke LoadIcon,hInst,NULL
        mov wndclass.hIcon,eax
        invoke LoadCursor,0,IDC_ARROW
        mov wndclass.hCursor,eax
        mov wndclass.hIconSm,0
        invoke RegisterClassEx,ADDR wndclass
        invoke CreateWindowEx,WS_EX_OVERLAPPEDWINDOW, ADDR szClassName,
                              ADDR szDisplayName,
                              WS_OVERLAPPEDWINDOW,
                              200,50,500,300,
                              0,0,
                              hInst,0
        mov   hWnd,eax
        invoke ShowWindow,hWnd,SW_SHOWNORMAL
        invoke UpdateWindow,hWnd
MessageLoop:
        invoke GetMessage,ADDR Msg,0,0,0
        cmp eax,0
        je ExitProgram
        invoke TranslateMessage,ADDR Msg
        invoke DispatchMessage,ADDR Msg
        jmp MessageLoop
ExitProgram:
        mov eax,Msg.wParam
        ret
WinMain endp
; ===============================================
WndProc proc hWin:DWORD, uMsg:DWORD, wParam:DWORD, lParam:DWORD
        .if uMsg == WM_DESTROY
                invoke PostQuitMessage,0
        .else
            invoke DefWindowProc,hWin,uMsg,wParam,lParam
            ret
        .endif
        xor eax,eax
        ret
WndProc endp
; ===============================================
end start



在命令行程序中进入在bin目录下输入 ml /coff ..\MyDocument\demo.asm

显示如下


                               
登录/注册后可看大图

在bin文件夹中可以看到demo.obj和demo.exe文件生成,打开demo.exe文件显示如下,那么你的环境就已经配置成功了


                               
登录/注册后可看大图


评分

参与人数 1鱼币 +10 收起 理由
康小泡 + 10 辛苦了,但是不是我想要的那种。不过还是谢.

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-3-18 17:09:54 | 显示全部楼层
你是编程:funk:大神吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-3-19 08:18:40 | 显示全部楼层
我之前学汇编是使用EditPlus.exe进行编写,安装masm32,使用nmake进行编译,前提是写好makefile配置文件以及批处理文件就不需要在dos模式下输入命令了。:loveliness:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-3-19 08:22:53 | 显示全部楼层
bess 发表于 2015-3-19 08:18
我之前学汇编是使用EditPlus.exe进行编写,安装masm32,使用nmake进行编译,前提是写好makefile配置文件以 ...

需要写界面
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-3-19 12:55:41 | 显示全部楼层
我没有试过,但是我看我们老师写界面也是用的这个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-3-19 13:14:20 | 显示全部楼层
bess 发表于 2015-3-19 12:55
我没有试过,但是我看我们老师写界面也是用的这个

这个写界面好麻烦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-3-19 23:08:41 | 显示全部楼层
这个问题嘛,你可以问你的老师啊,他肯定知道

后记: 我的新头像怎么样,是不是很帅啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-3-20 08:30:00 | 显示全部楼层
皓月长空 发表于 2015-3-19 23:08
这个问题嘛,你可以问你的老师啊,他肯定知道

后记: 我的新头像怎么样,是不是很帅啊

你的这个新头像不好看,。说句老实话
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-3-20 11:57:05 | 显示全部楼层
kklloo 发表于 2015-3-20 08:30
你的这个新头像不好看,。说句老实话

我想打死你
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-3-22 16:00:30 | 显示全部楼层
kklloo 发表于 2015-3-17 20:44
用Win32的,不麻烦。跟SDK有类似

API
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-4-13 22:05:32 | 显示全部楼层
RadASM...建议你用这个写.......绝对没错
_______本评论来自新浪微博:whitesilt
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-4-13 22:05:32 | 显示全部楼层
当然是用记事本了
_______本评论来自新浪微博:苶然弃疾
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-4-17 10:10:25 | 显示全部楼层
没必要用汇编写界面吧。用c++写出界面,然后嵌套win32汇编来提高效率。应该不错吧。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-5-15 22:58:59 | 显示全部楼层
我喜欢RadAsm
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-27 15:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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