вызов функции SHGetKnownFolderPath приводит какой то ошибке
я в отладчике запускал. выполнение останавливается на обычной инструкции и дальше не выполняется. это в функции SHGetKnownFolderPath. Я сделал так.
struc GUID def
{
match d1-d2-d3-d4-d5, def
\{
.Data1 dd 0x\#d1
.Data2 dw 0x\#d2
.Data3 dw 0x\#d3
.Data4 db 0x\#d4 shr 8, 0x\#d4 and 0xff
.Data5 db 0x\#d5 shr 40, 0x\#d5 shr 32 and 0xff, 0x\#d5 shr 24 and 0xff, 0x\#d5 shr 16 and 0xff, 0x\#d5 shr 8 and 0xff, 0x\#d5 and 0xff
\}
}
section '.text' code readable executable
proc check_config_file
push ebx esi edi
mov eax, profile_p
mov ebx, profile_w
mov [eax], ebx
invoke SHGetKnownFolderPath, [FOLDERID_Profile], 0, NULL, eax
mov eax, [profile_p]
; invoke GetUserName, login_system, size_login_system
; invoke snprintf, path_config_file, 512, string_param, login_system
pop edi esi ebx
ret
endp
section '.bss' readable writable
profile_w rw 0
profile_p rd 1
section '.data' data readable writable
;data4 db 0x9a, 0xfe, 0xea, 0x33, 0x17, 0xb6, 0x71, 0x73
;FOLDERID_Profile GUID 0x5e6c858f, 0x0e22, 0x4760, 0x9a, 0xfe, 0xea, 0x33, 0x17, 0xb6, 0x71, 0x73
FOLDERID_Profile GUID 5d6c858f-0e22-4760-9afe-ea3317b67173
я вроде правильно сделал указатель на указатель, ведь последний параметр в этой функции требует именно ссылки на указатель. но требуется ссылка без выделенной памяти. как правильно надо делать?