MAKEINTRESOURCE



  • Hallo,
    leider kenn ich mit WinApi-Programmierung nicht so gut aus und bin jetzt schon
    öfters auf das Makro MAKEINTRESOURCE gestoßen, meistens im Zusammenhang mit
    Icons. Was genau macht denn dieses Makro mit dem übergebenen Wert?

    Vielen Dank im Voraus!!!!



  • The MAKEINTRESOURCE macro converts an integer value to a resource type compatible with the resource-management functions. This macro is used in place of a string containing the name of the resource.

    #define MAKEINTRESOURCEA(i) (LPSTR)((DWORD)((WORD)(i)))
    #define MAKEINTRESOURCEW(i) (LPWSTR)((DWORD)((WORD)(i)))
    

    das hättste auch selbst im psdk nachgucken können. 👎



  • D schrieb:

    ...,
    leider kenn ich mit WinApi-Programmierung nicht so gut aus ...

    Was ist denn ein resource type und resourcen allgemein?



  • Resourcen sind Zusatzdaten, die man einbindet, um die GUI (Graphic User Interface)-Elemente von Windows- wie Buttons, Schaltflächen, Icons, Menüs, Dialoge ect.- zu programmieren. Resourcentyp bedeutet: Du kannst verschiedene Arten von Resourcen anlegen, z. B. Bitmaps (für Icons, Symbole, Schalflächen), Texte (für Tooltips, Button-Beschriftungen, Textausgaben o. ä.), Menüs (spezielle Scripts). Theoretisch kann man jede Art von Daten in den Resourcen hinterlegen. Die einzelnen Resourcen werden als Scripte in der Resourcen-Datei gespeichert und mit einer Integer-ID versehen. MAKEINTRESOURCE wandelt die Resource in einen Datentyp um, der mit LPWSTR lesbar ist.


  • Mod

    Ressourcen können in einem Modul (EXE, DLL) unter einem String oder einer ID abgelegt werden.
    Die ID kann einen Wert bis 2^16-1 annehmen. Damit man keinen zweiten Funktionssatz für das Laden einer Ressource nach ID erfinden musste wurde einfach definiert, dass ein Pointer, bei dem das hohe Wort 0 ist als ID gewertet wird und nicht als Zeiger auf einen String.
    Man kann solch eine Ressource, die als ID abgelegt wurde aber auch mit einem String laden, indem man eine Raute voranstell und die Zahl in Text folgt. Die Ressource mit der ID 100 lässt sich also mit dem String _T("#100") laden oder mit MAKEINTRESOURCE(100)!

    HTH



  • Danke! Das hilft mir weiter!!!


Anmelden zum Antworten