NASM import win32api
生活随笔
收集整理的這篇文章主要介紹了
NASM import win32api
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
找到些資料, 現在可以在nasm工程中引入win32api了.
應該說, nasm的編譯環境已經準備好了.
; import_api.asmBITS 32; %include "C:\nasm\include\win32n.inc" MB_OK equ 0hextern printf import printf MSVCRT.DLLextern MessageBoxA import MessageBoxA user32.dll; extern ExitProcess ; import ExitProcess kernel32.dllsegment .data USE32 msg db "nasm : import_api", 0h fmt_msg db "%s", 0htitle db "hello",0 message db "hello world",0segment .bss USE32; var1 resb 32segment .code USE32..start:; 用(NASM + AlINK)生成的工程和(NASM + MINGW_GCC)生成的工程差好多 ; 用OD加載后, 可以看到(NASM + AlINK)生成的工程和我們手寫的一樣 ; 而(NASM + MINGW_GCC)生成的工程入口處有很多前置的代碼; 如果要向控制臺寫信息, 不能用printf ; 必須用GetStdHandle系列API, 否則報錯, 可能是C運行時庫沒有初始化導致 ; https://msdn.microsoft.com/en-us/library/ms683231.aspx ; https://msdn.microsoft.com/en-us/library/ms687401.aspx ; push msg ; push fmt_msg ; call printf ; add esp, 8push dword MB_OK push dword title push dword message push dword 0 call [MessageBoxA]; push dword 0 ; call [ExitProcess]xor eax, eax ret ; go.bat cls del F:\nasm_prj\src\import_api\*.obj del F:\nasm_prj\src\import_api\*.exeecho off rem 如果工程中要引入Dll的API, nasm 要使用 -f obj 生成 o.obj rem section .data use32, section .bss use32, section .text use32 rem 然后使用 ALINK 生成exe rem 如果不這樣, 編譯不過 echo onc:\nasm\nasm.exe -fobj F:\nasm_prj\src\import_api\import_api.asm c:\nasm\alink\alink.exe -c -oPE -subsys con F:\nasm_prj\src\import_api\import_api.obj; 如果要生成純win32窗口工程 -subsys gui 或者 -subsys win ; c:\nasm\alink\alink.exe -c -oPE -subsys gui F:\nasm_prj\src\import_api\import_api.objF:\nasm_prj\src\import_api\import_api.exeNASM編譯環境需要NASM, WINGW_GCC, ALINK, WIN32N.INC,?調試用OD(需要在Win7X64下能調試X86PE的那種)
NASM編譯環境下載點:?nasm_dev_env.rar
C:\NASM ├─ALINK ├─contrib │ └─VSrules ├─include ├─MinGW │ ├─bin │ ├─lib │ │ └─gcc │ │ └─mingw32 │ │ └─4.6.2 │ ├─libexec │ │ └─gcc │ │ └─mingw32 │ │ └─4.6.2 │ └─mingw32 │ └─bin ├─MinGW64 │ ├─bin │ ├─include │ │ └─gdb │ ├─lib │ │ └─gcc │ │ └─x86_64-w64-mingw32 │ │ └─4.8.1 │ ├─libexec │ │ └─gcc │ │ └─x86_64-w64-mingw32 │ │ └─4.8.1 │ ├─opt │ │ ├─bin │ │ └─lib │ │ └─python2.7 │ │ └─encodings │ ├─share │ │ └─gdb │ │ ├─python │ │ │ └─gdb │ │ │ ├─command │ │ │ └─function │ │ └─syscalls │ └─x86_64-w64-mingw32 │ ├─bin │ └─lib ├─OD │ ├─LIB │ ├─OdWin7X64插件補丁 │ ├─plugin │ ├─tools │ │ ├─HideToolz │ │ └─xidt │ ├─UDD │ └─原版 │ ├─漢化原版 │ └─英文原版 └─rdoff總結
以上是生活随笔為你收集整理的NASM import win32api的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UML建模 步骤
- 下一篇: 微软日语输入法 用法说明: