第一个DLL程序。

基本上与.exe文件没什么大的区别。关键是链接开关不同。要加/dll.

且dll文件如果有导出符号,则最好使用.def文件。

 

------------------Kaka.asm文件-----------------

.386
.model flat, stdcall
option casemap:none

include /masm32/include/kernel32.inc
include /masm32/include/user32.inc
include /masm32/include/windows.inc

includelib /masm32/lib/kernel32.lib
includelib /masm32/lib/user32.lib

;等值定义,宏定义
IDD_MAIN        equ       1
IDC_BTN_TEST    equ       100

.data
szTxt      db 'Congratulation! Success.', 0
szTitle    db 'Prompt', 0

.code
;--------------------------------------------
; DLL 入口函数,系统回调函数
;--------------------------------------------
_DllEntry proc _hInstDll:dword, _dwReason:dword, _dwReserved:dword
    mov eax, TRUE ;//表示加载dll成功
    ret
_DllEntry endp

 

_Prompt proc
    invoke MessageBox, NULL, addr szTxt, addr szTitle, MB_OK or MB_ICONINFORMATION
    ret
_Prompt endp

end _DllEntry

 

--------------------define.def文件------------------------


//
EXPORTS _Prompt

 

 

---------------------makefile文件--------------------------

#makefile 文件适用于dll
#区分大小写
#makefile文件不加扩展名

#宏定义
DLL  = Kaka.dll
OBJs = Kaka.obj
RES  = rsrc.res
DEF  = define.def

ML_FLAG = /c /coff
LINK_FLAG = /subsystem:windows /Dll

########################################
#第一个显示规则,决定输出文件
$(DLL):$(OBJs) $(RES) $(DEF)
 Link $(LINK_FLAG) /out:$(DLL) /def:$(DEF) $(OBJs) $(RES)

#$(OBJs):Kaka.inc
#--------不加命令行,这样的话,nmake会到隐含规则中去找命令行

#隐含规则
.asm.obj:
 ml $(ML_FLAG) $<
.rc.res:
 rc $<

##################
#其它功能显示规则,用于在cmd中nmake取“假文件名”执行相应功能
#注意,在默认参数时,clean是不会执行的
clean:
 del *.obj
 del *.res


 
----------------------------资源脚本文件 rsrc.rc------------------------------

#include "/masm32/include/resource.h"

#define IDD_MAIN        1
#define IDC_BTN_TEST    100

/
//主对话框
IDD_MAIN DIALOG   10, 10, 300, 200
         STYLE    DS_MODALFRAME | WS_SYSMENU | WS_POPUP | WS_CAPTION
         CAPTION  "Kaka_001"
         FONT     9, "宋体"
         BEGIN
            PUSHBUTTON "Test", IDC_BTN_TEST, 1, 1, 100, 25
         END

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值