HMODULE- FindResource Member



  • Hallo,

    ich versuche die FindResource Methode zu verwenden, weiß aber leider nichts mit HMODULE anzufangen. Da ich Windows CE nutze, kann ich laut MSDN keinen Nullverweis verwenden...

    http://msdn.microsoft.com/de-de/library/aa932930.aspx

    Auf was muss HMODULE verweisen? Ich verstehe die MSDN an der Stelle nicht...

    Grüße,
    Nooby



  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x) in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


  • Mod

    Die Bergiffe (Bedeutung) von HMODULE und HINSTANCE sind in Win32 mittlerweile gleich. (Siehe Old Neew Thing Blog)

    Wenn es eine DLL ist für Die Du es verwenden willst ist es das DL HINSTANCE, ansonsten HINSTNACE Deiner EXE.



  • Ich habe es mit der "GetHInstance" Methode probiert. Doch leider funktioniert es immer noch nicht.

    GetLastError() gibt 1814 aus
    ->The specified resource name cannot be found in the image file. (ERROR_RESOURCE_NAME_NOT_FOUND)

    Ich habe versucht nach dem in der resource.h definierten Namen und auch nach der Handle (also der definierten Nummer) zu suchen. Leider ohne Erfolg:

    TCHAR sRestype[13] = _T("TIMELISTINGS");
    
    HRSRC hres = FindResource(App::GetHInstance(), _T("IDR_TIMELISTINGS1"), sRestype);
    // oder
    TCHAR  sResName[5]  = _T("#130");
    HRSRC hres = FindResource(App::GetHInstance(), sResName, sRestype);
    

  • Mod

    Vermutlich suchst Du eine ID, desdhalb müsste es so lauten:

    HRSRC hres = FindResource(App::GetHInstance(), MAKEINTRESOURCE(IDR_TIMELISTINGS1), sRestype);
    


  • Komischerweise erkennt die Kontexthilfe von VS2008 die Funktion MAKEINTRESOURCE() nicht, aber der Compiler beschwert sich nicht...

    Trotzdem bleibt es bei gleichem Fehler- 1814.

    Aber ich habe folgende Beobachtung gemacht: Die Datei IDR_TIMELISTINGS1 erscheint zwar in der resource.h mit einem #define, aber verschwindet aus der Resourcenansicht, sobald ich die resource.h mal geöffnet habe und wieder schließe...

    Zur Erklärung: Ich versuche eine XML Datei als Resource einzubinden und habe folgende Seite gefunden:
    http://www.codeproject.com/KB/cpp/usingtextfile_resources.aspx



  • Ich weiß nur, dass VS mit Resourcen manchmal irgendwie buggy ist. So, dass eine Resource mal nicht benutzt werden kann, verschwindet, nicht mehr erstellt werden kann, oder so...
    Leider...


  • Mod

    Dann ist die Ressource mit diesem Namen nicht in der EXE.

    Öffne die EXE im VisualStudio und schau Dir doch die Ressourcen an. Evtl. stimmt einfach die ID nicht. Oder TIMELISTINGS ist auch eine ID und muss mit MAKEINTRESOURCE verwendet werden.


Log in to reply