Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Servs!

Folgendes Problem, ich will Icons aus einer .dll oder .exe Datei auslesen, es können ja mehrere icos in einer .dll drin sein.

(VC++6.0,MFC)

Eine .ico File les ich folgendermassen aus:


HICON hIcon = (HICON)LoadImage(NULL, "D:\\icon.ico", IMAGE_ICON, 0, 0, LR_LOADFROMFILE);

ne .exe oder eine .dll versuch ich folgendermassen auszulesen:

HMODULE hModule = GetModuleHandle("D:\\Icon.exe");

HRSRC hrSrc = FindResource(hModule, "128", RT_ICON);

HICON hIcon = LoadIcon(hModule, "128");

Doch irgendwie funktioniert des net, in der MSDN steht zu LoadIcon, dass man die ID des Icons mitgeben muss, des is doch aber quatsch, in der Exe gibts keine ID's mehr oder irr ich mich da? Naja, auf alle Fälle hat das Icon die ID 128 in der 'Icon.exe" aus der ich jetzt was auslesen will, nunja, er liest aber net!

Hat einer eine Ahnung?

JO ;)

Geschrieben

also rein von der funktionsbeschreibung in der msdn würde die funktion ExtractIcon den job für die übernehmen.

dazu steht dort:

The ExtractIcon function retrieves a handle to an icon from the specified executable file, dynamic-link library (DLL), or icon file.

To retrieve an array of handles to large or small icons, use the ExtractIconEx function.

HICON ExtractIcon(

HINSTANCE hInst, // instance handle

LPCTSTR lpszExeFileName, // file name

UINT nIconIndex // icon index

);

hInst

[in] Handle to the instance of the application calling the function.

lpszExeFileName

[in] Pointer to a null-terminated string specifying the name of an executable file, DLL, or icon file.

nIconIndex

[in] Specifies the zero-based index of the icon to retrieve. For example, if this value is 0, the function returns a handle to the first icon in the specified file.

If this value is –1, the function returns the total number of icons in the specified file. If the file is an executable file or DLL, the return value is the number of RT_GROUP_ICON resources. If the file is an .ICO file, the return value is 1.

Windows 95/98, Windows NT 4.0, and Windows 2000: If this value is a negative number not equal to -1, the function returns a handle to the icon in the specified file whose resource identifier is equal to the absolute value of nIconIndex. For example, use -3 to extract the icon whose resource identifier is 3. To extract the icon whose resource identifier is 1, use the ExtractIconEx function.

ob das funktioniert habe ich auch noch nicht ausprobieren können. aber anhören tut es sich sehr gut.

Geschrieben

Du hättest die DLL einfach direkt vor dem Compilen mit einbinden können. Loadlibrary() verwendet man nur, wenn die DLL ausgelagert ist und dann zur Laufzeit eingebunden werden muß. Das geht aber glaub nicht mit jeder VC++-Edition.

  • 2 Wochen später...

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...