ffGebaeck Geschrieben 27. Februar 2002 Geschrieben 27. Februar 2002 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 Zitieren
maddin Geschrieben 27. Februar 2002 Geschrieben 27. Februar 2002 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. Zitieren
ffGebaeck Geschrieben 27. Februar 2002 Autor Geschrieben 27. Februar 2002 Hab die Lösung selber schon gefunden, die .dll mit LoadLibrary() laden, dann kann ich die Icons auslesen, trotzdem thanx! JO Zitieren
Crush Geschrieben 27. Februar 2002 Geschrieben 27. Februar 2002 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. Zitieren
ffGebaeck Geschrieben 13. März 2002 Autor Geschrieben 13. März 2002 Sers, die Dll soll der User auswähln, also kann ich'se net fest einbinden! bye...JO Zitieren
Empfohlene Beiträge
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.