Quote;RELEASE : jwasm -coff -Fd -Fw=PrjJWAsm.err -Gz -zlc -zld -zlf -zlp -zls "PrjJWAsm.asm"
;RELEASE : jwlink OPTION CHECKSUM,ELIMINATE,MAP,NORELOCS,NXCOMPAT,FILLCHAR=42 RESOURCE PrjJWAsm.res FORMAT WINDOWS PE FILE PrjJWAsm.obj
;DEBUG jwasm -Zd -Zi -coff -Fd -Fw=PrjJWAsm.err -Gz -zlc -zld -zlf -zlp -zls "PrjJWAsm.asm"
;DEBUG jwlink OPTION CHECKSUM,ELIMINATE,MAP,NORELOCS,NXCOMPAT,FILLCHAR=42 RESOURCE PrjJWAsm.res FORMAT WINDOWS PE FILE PrjJWAsm.obj
;*** a simple GUI app using WinInc include files
;*** this sample creates a window and a message loop
.686P
.model flat, stdcall
option casemap:none
option PROCALIGN:16
; OPTION DLLIMPORT:<user32.lib>
; OPTION DLLIMPORT:<kernel32.lib>
; OPTION DLLIMPORT:<gdi32.lib>
INCLUDELIB C:\masm32\LIB\user32.lib
INCLUDELIB C:\masm32\LIB\kernel32.lib
INCLUDELIB C:\masm32\LIB\gdi32.lib
WINVER equ 0501h
WIN32_LEAN_AND_MEAN equ 1
.nolist
.nocref
include windows.inc
.list
.cref
I would like to know how :
-Fd and option IMPLIB works together.
When I sepcify -Fd I must include the libraries, strange! My symbols are undefined.
-OPTION DLLIMPORT
It the way the code is created with or without this option.
If I remove it the code doesnot change!
QuoteCode Generation Effects
The effects of setting this options are subtle and useful only for MS Windows applications: if the function described by the prototype is called via INVOKE, slightly more efficient code than normal is generated, because the function's address in the IAT is used. Example:
INVOKE GetModuleHandle, NULL
code generation with OPTION DLLIMPORT:
push NULL
call DWORD PTR [_imp__GetModuleHandle@4]
code generation without OPTION DLLIMPORT:
push NULL
call _GetModuleHandle@4
...
_GetModuleHandle@4:
jmp DWORD PTR [_imp__GetModuleHandle@4] ;stub added by the linker