CImage Load



  • Guten Morgen!

    Schreibe gerade eine DLL in Visual C++ 2005, die ich von einer anderen Programmierumgebung aus aufrufe und dort eine Pfadangabe auf ein Bild übergebe.

    Dieses Bild soll dann mit CImage::Load geladen werden. Leider klappt das nicht so, wie ich mir es vorgestellt habe!

    Hier der Source für die DLLFunktion:

    extern "C" BOOL PASCAL EXPORT AndImage(LPCTSTR src, LPCTSTR des) {
    
                ......
                CImage source;
                CImage destanation;
                HRESULT hResSrc;
                hResSrc = source.Load(src);
                .......
                if (hResSrc != IDOK) {
                    AfxMessageBox(_T("Fehler laden Source"));
                  }
                }
    

    In meiner anderen Programmierumgebung (Teamdeveloper) rufe ich die Funktion ungefähr so auf:

    Set sSource = 'C:\\bild1.jpg'
    Set sDest   = 'C:\\bild2.jpg'
    Call AndImage(sSource,sDest)
    

    Es kommt natürlich die Fehlermeldung: "Fehler laden Source"
    (bei Dest. natürlich auch 🙂 )

    Habe jetzt mal in die DLL AfxMessageBoxes eingebaut, um zu prüfen was darüber geschwuchtelt wird:

    AfxMessageBox(_T(src));
    

    Als Ergebnis kommt:

    C:\bild1.jpg

    Hab leider keine Ahnung an was das liegen könnte. Würde mich freuen, wenn jemand von Euch eine Idee hat, was der Fehler sein könnte!

    Vielen Dank und noch einen schönen verregneten Tag! 🙄

    Paulchen



  • Meinst du weil es nur mehr eine Backslash gibt?
    Das ist normal den ein Backslash ist in einem String ein Steuerzeichen. Um es als Zeichen zu behandeln muss diesem ein weitere Backslash vorangestellt werden.
    Dieser ist dann im eigentlichen String wieder weg.

    Möchtest du 2 haben dann mit

    CString te("c:\\\\bild1.jpg");
    


  • Hallo!

    Danke für die schnelle Antwort!

    Das mit den "\\\" habe ich schon probiert!

    Kommt trotzdem ein Fehler beim laden. Bin gerade zu der Erkenntnis gekommen, dass es vielleich am Prüfen auf IDOK liegt.

    Habe gerade in anderen Foren gesehen, dass bei Image Load auf S_OK geprüft wird, was ich bis jetzt überhaupt nicht gekannt habe.

    Was ist denn der Unterschied zwischen IDOK und S_OK!


Anmelden zum Antworten