TResourceStream im CB2009



  • Hallo

    ich stelle gerade um von C++Builder5 auf C++Builder2009, nun sind aber noch kleine Probleme. Habe jetzt schon fast alles gefunden was ich zum anpassen brauche nur TResourceStream bekomme ich nicht hin.

    Ich lade ein Bild aus einer DLL in ein Image. Mit BCB5 ging das noch, jetzt nicht mehr.
    Diesen Fehler erhalte ich:
    [BCC32 Fehler] fb.cpp(210): E2285 Keine Übereinstimmung für 'TResourceStream::TResourceStream(int,const char *,char *)' gefunden

    if(FileExists(path+"test.dll"))
    {
     TDLLModulName* DLLModulName;
     HINSTANCE hinstDLL = LoadLibrary("test.dll");
     try
     {
      TResourceStream *rcStream = new TResourceStream((int)hinstDLL, "Imag1", RT_RCDATA);
      IForm->Image1->Picture->Bitmap->LoadFromStream(rcStream);
      delete rcStream;
     }
     catch ( ... )
     {
    // unwichtig
     }
    }
    


  • Hallo

    Na dann schau doch in der BCB-Hilfe mal nach, was für Parameter der Konstruktor von TResourceStream braucht.

    bis bald
    akari



  • Ja Hallo,

    habe es jetzt hinbekommen das keine Fehlermeldung mehr kommt mit (System::WideChar*)"RT_RCData".

    Jetzt gibt es aber ein anderes Problem. Er findet die Resource nicht mehr.
    Warum findet er diese jetzt in der dll nicht mehr?

    Erste Gelegenheit für Exception bei $7C812AFB. Exception-Klasse EResNotFound mit Meldung 'Ressource Imag1 wurde nicht gefunden'. Prozess Test.exe (4052)



  • Hallo,

    vielleicht liegt es daran, dass deine DLL-Image noch mit chars betitelt ist und du nun den Titel mit wchars suchst.

    PS scheiß unicode



  • ahh verdammt, jetzt geht es.

    So muss es wohl aussehen (System::WideChar*)RT_RCData ohne die "".

    Danke


Anmelden zum Antworten