Исправно компилируется в DLL, но нет соглашения о вызовах

This commit is contained in:
Стас Михайлов WindowsDesktop
2021-02-20 13:50:11 +03:00
parent ccfb9de3e7
commit 44809a1f56
2282 changed files with 185186 additions and 112608 deletions
+41 -27
View File
@@ -1,35 +1,49 @@
.386
.model flat,stdcall
option casemap:none
include include\windows.inc
include include\user32.inc
include include\kernel32.inc
includelib user32
includelib kernel32
OPTION DOTNAME
include includes\temphls.inc
include includes\win64.inc
include includes\user32.inc
includelib includes\user32.lib
OPTION PROLOGUE:none
OPTION EPILOGUE:none
.data
AppName db "DLL Skeleton",0
HelloMsg db "Hello, you're calling a function in this DLL",0
LoadMsg db "The DLL is loaded",0
UnloadMsg db "The DLL is unloaded",0
ThreadCreated db "A thread is created in this process",0
ThreadDestroyed db "A thread is destroyed in this process",0
SHAMsg db "SHA256 is started",0
.code
DllEntry proc hInstance:HINSTANCE, reason:DWORD, reserved1:DWORD
.if reason==DLL_PROCESS_ATTACH
invoke MessageBox,NULL,addr LoadMsg,addr AppName,MB_OK
.elseif reason==DLL_PROCESS_DETACH
invoke MessageBox,NULL,addr UnloadMsg,addr AppName,MB_OK
.elseif reason==DLL_THREAD_ATTACH
invoke MessageBox,NULL,addr ThreadCreated,addr AppName,MB_OK
.else ; DLL_THREAD_DETACH
invoke MessageBox,NULL,addr ThreadDestroyed,addr AppName,MB_OK
.endif
mov eax,TRUE
DllMain proc hInstDLL:QWORD, reason:QWORD, unused:QWORD
sub rsp,28h
.if edx==DLL_PROCESS_ATTACH
lea rdx,LoadMsg
jmp exit
.elseif edx==DLL_PROCESS_DETACH
lea rdx,UnloadMsg
.endif
mov r9d,MB_OK
jmp exit
DllMain Endp
TestHello proc
sub rsp,28h
lea rdx,HelloMsg
mov r9d,MB_OK + MB_ICONERROR
exit:: lea r8,AppName
xor rcx,rcx
call MessageBox
add rsp,28h
mov rax,TRUE
ret
DllEntry Endp
TestHello proc
invoke MessageBox,NULL,addr HelloMsg,addr AppName,MB_OK
ret
TestHello endp
End DllEntry
Sha256 proc h_line:QWORD, h_size:QWORD
sub rsp,28h
;Основа
lea rdx,SHAMsg
mov r9d,MB_OK + MB_ICONERROR
lea r8,AppName
xor ecx,ecx
call MessageBoxW
add rsp,28h
mov rax,TRUE
ret
Sha256 Endp
end