Resourcen laden geht nich
-
hallo leutz,
kämpfe mich grad selbstständig durch assembler hindurch und stolpere dabei natürlich heftigich verwende Masm, und als IDE das WinAsm Studio. wie es sich vermuten lässt bin ich natürlich darauf aus, unter Windows mit assembler zu programmieren.
Ich wollt etzt einfach mal ein Fenster mit eigenem Icon und eigenem Cursor baun. die Funktionen zum laden von cursor und icon schlagen bei mir allerding fehl. hier ma der codeausschnitt:
push offset Bild push NULL call LoadIconA mov intvar1, eax or eax, eax jnz klappt call GetLastError push eax push offset fmtint push offset Buffer call wsprintf push MB_OK push offset Buffer push offset Fehler push NULL call MessageBoxA push IDI_ERROR push NULL call LoadIconA mov dword ptr [wcex.hIcon],eax mov dword ptr [wcex.hIconSm],eax jmp weiter klappt: mov eax, intvar1 mov dword ptr [wcex.hIcon],eax mov dword ptr [wcex.hIconSm],eax weiter: push offset Zeigername push NULL call LoadCursorA mov intvar1, eax or eax, eax jnz klappt2 call GetLastError push eax push offset fmtint push offset Buffer call wsprintf push MB_OK push offset Buffer push offset Fehler push NULL call MessageBoxA push IDC_NO push NULL call LoadCursorA mov dword ptr [wcex.hCursor],eax jmp weiter2 klappt2: mov eax, intvar1 mov dword ptr [wcex.hCursor],eax weiter2: .......
wobei
Bild db "Birne.ico",0 Zeigername db "cursor.cur",0 Fehler db 'Fehler',0 Buffer BYTE 256 dup(0) intvar1 dd 0 fmtint db '%d',0
ich krieg als fehler den code
ERROR_RESOURCE_TYPE_NOT_FOUND
1813 The specified resource type cannot be found in the image file.naja - dasselbe in C funktioniert bestens mit den gleichen dateien. hab sie auch durch einen icon bzw cursoreditor gejagt um sicherzustellen dass sie gültig sind. klappt trotzdem nicht.
Vielleicht geh ich die Sache mit Assembler auch etwas falsch an. sonst würd ich den Fehler erkennen. aber wenn mir irgendjemand helfen kann, wäre ich sehr dankbar^^
Falls benötigt - ml.exe parameter: /Dmasm /c /Cx /coff
gelinkt wird mit: /SUBSYSTEM:WINDOWS /RELEASE /VERSION:4.0
-
Falls "Birne.ico" oder "cursor.cur" der Name einer Datei ist, dann kann es nicht klappen.
LoadIconA braucht als Parameter den Namen der Resource wie er in der Resourcen-Sektion der EXE steht (oder eine ID).
Und der ist i.d.R. != Dateiname.