Autor |
Beitrag |
FrEaKY
      
Beiträge: 235
D7
|
Verfasst: Di 10.05.11 17:02
Ich sitze hier seit Stunden an einem Problem, das mich fast in den Wahnsinn treibt.
Ich versuche ein BITMAP aus einer Ressource zu laden und nie passiert was. Mittels GetLastError bekomme ich 1812 - ERROR_RESOURCE_DATA_NOT_FOUND, was absolut unmöglich ist. Ich hab schon dutzende Kombinationen probiert, mit Delphis ImageEditor, ResourceHacker, mit RC-Dateien. Nichts funktioniert.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| var bmp: hbitmap; begin bmp := LoadBitmap(hinstance, MAKEINTRESOURCE(100));
err := GetLastError; MessageBox(hw1, pointer(inttostr(err)),'', 0); end; |
Die Ressource lade ich ganz einfach mit:
Delphi-Quelltext
Und diese wird aus RESOS.rc erstellt, mittels
Quelltext
Habe aber wie gesagt auch noch andere Kombinationen probiert, sogar nur den ImageEditor von Borland genommen. Nichtmal damit geht es.
Das ist pure Qual bei dem Wetter.
Weiß einer, was da los sein könnte?
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Di 10.05.11 17:24
FrEaKY hat folgendes geschrieben : | Delphi-Quelltext 1: 2: 3:
| err := GetLastError; MessageBox(hw1, pointer(inttostr(err)),'', 0); end; | |
Warum nicht einfach: Delphi-Quelltext 1: 2: 3:
| ShowMessage(SysErrorMessage(GetLastError)); MessageBox(hw1, PChar(IntToStr(err)), '', 0); | Und was die Ressourcen angeht, nimm doch einfach einen normalen Bezeichner, wenn das so bei dir nicht geht. Makeintresource ist jedenfalls wohl ohnehin unpassend für deine Ressourcendatei. Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| var bmp: hbitmap; begin bmp := LoadBitmap(hinstance, 'Beispiel'); Image1.Picture.Bitmap.Handle := bmp; ShowMessage(SysErrorMessage(GetLastError)); end; | Quelltext Ich vermute einmal das geht, grad keine Zeit zum Testen.
|
|
FrEaKY 
      
Beiträge: 235
D7
|
Verfasst: Di 10.05.11 17:49
Leider immer noch das gleiche Ergebnis. Fehler 1812. Ich hab noch vergessen zu erwähnen, dass das hier nonVcl ist. Also SysErrorMessage geht hier nicht.
Was aber interessant ist: wenn ich bei LoadBitmap hInstance durch 0 ersetze, kommt Fehler 1814. ERROR_RESOURCE_NAME_NOT_FOUND.
Naja, interessant um nicht zu sagen es macht die Sache nur noch verwirrender... o_O
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Di 10.05.11 17:52
C:\Dokumente und Einstellungen\Michael>net helpmsg 1812
Die angegebene Image-Datei enthält keinen Ressourcenabschnitt.
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Di 10.05.11 17:53
FrEaKY hat folgendes geschrieben : | Ich hab noch vergessen zu erwähnen, dass das hier nonVcl ist. |
Ach son Zeugs... naja, ich sag nix weiter...
Vielleicht so? Delphi-Quelltext 1:
| bmp := LoadBitmap(GetModuleHandle(nil), 'Beispiel'); |
// EDIT:
Und wenn das auch nicht geht, hast du bei deinem nonVcl-Gespiele irgendetwas Wichtiges rausgeworfen...
Zuletzt bearbeitet von jaenicke am Di 10.05.11 17:56, insgesamt 1-mal bearbeitet
|
|
FrEaKY 
      
Beiträge: 235
D7
|
Verfasst: Di 10.05.11 17:56
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Di 10.05.11 17:59
Dann hast du in der Unit SysInit vermutlich den Abschnitt in _InitExe oder so herausgeworfen, der HInstance setzt. Dann kannst du das natürlich auch nirgends verwenden, was schlecht ist, weil das öfter benutzt wird.
|
|
FrEaKY 
      
Beiträge: 235
D7
|
Verfasst: Di 10.05.11 18:05
Eigentlich hab ich (diesmal) garnichts rausgeworfen. Standard-RTL und Stanard Windows-Unit  Sehr bizarr.
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Di 10.05.11 18:41
Jetzt habe ich es doch einmal getestet.
Winziges Projekt ohne irgendwas anderes, funktioniert:  Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| program Project112;
uses Windows, SysUtils;
{$R RESOS.RES}
var bmp: HBITMAP; begin bmp := LoadBitmap(HInstance, 'Beispiel'); MessageBox(0, PChar(IntToStr(GetLastError)), '', 0); end. |
|
|
|