LoadImage und Exe ???
-
Hallo zusammen,
Ich will mit der LoadImage funktion ein Icon aus einer .exe datei laden, das problem ist nur das handle, bei dll's klappt das wunderbar mit LoadLibrary(path) und .ico hab ich auch hinbekommen, nur bei exe dateien wills irgendwie net funzen, gibts da auch sowas wie LoadLibrary bei Dll ?
-
LoadLibrary sollte sowohl bei DLLs als auch bei EXEs gehen.
-
@MaSTaH
Wie kommst Du darauf? Eine Exe kann nie im gleichen Speicher wie eine andere Exe stehen, da sie die gleiche Einsprungadresse haben.
-
Die Resourcen stehen in einer EXE an einer bestimmten Stelle und die kann man auch auslesen. (Weiß aber die Funktionen jetzt nicht auswendig. Steht aber alles in der MSDN sogar mit Bsp.)
Mit LoadLib wird die dll ja in den Speicherbereich des Programmes geladen. deshalb kann man auch auf die Resourcen zurgreifen.
-
Ich suche schon ständig in der msdn, aber kann leider nichts finden, würde mich sehr freuen wenn dir die funktion einfallen würde, vielleicht kennt ja noch jemand anderes sie ...
-
@unbekannt: Guck mal in die Msdn. Habe dort gelesen, dass es sowohl für dll als auch für exe klappt. Kann auch sein, dass ich mich verlesen habe.
-
-
Erstmal danke für den link, aber das mit dem FindResource hatte ich schonmal probiert und das klappte nicht, naja jetzt hab ich meinen Fehler gefunden,
mir fehlte ein "#" vor dem Icon index.
Jetzt bekomme ich ein Handle für mein Icon, funzt prima, nur wenn ich das Icon jetzt meiner Icon liste hinzufüge gibt die funktion mir -1 also fehlgeschlagen zurück.
Könnte vielleicht an der größe des Icons liegen, meine Iconliste ist für 16x16 vorgesehen.
Hier mal en bisl code:HMODULE mod=LoadLibrary(strExePath); CString strIndex ; strIndex.Format("#%i", iIconIndex); HRSRC hRes = FindResource( mod,strIndex,RT_ICON ); HICON hIcon = (HICON) LoadResource( mod, hRes); int iIconNumber = m_ilDirTree.Add(hIcon);
-
@MaSTaH
So lernt man immernoch dazu. Hab bisher nach LoadLibrary nur GetProcAddress angewendet, und das kann nicht funzen.
-
Gibt es irgendeine möglichkeit das Icon zu verkleinern ?
Oder falls das große geladen wird das kleine zu laden ?
-
hab noch ein wenig rumprobiert, aber bekomms net hin, bin mir unsicher obs überhaupt an der größe oder den Farben liegt. Ich glaub eher dass ich ein ungültiges Handle habe.
Brauche unbedingt hilfe, danke!