LoadIFilter mit TIF



  • Hallo,

    ich versuche vergeblich mittels LoadIFilter() TIF-Dateien zu laden.
    Als Rückgabewerte erhalte ich E_FAIL (lt. Doku "An unknown error has occurred"). Windows-TIFF-IFilter ist unter Windows 7 installiert.
    Die PersistenFile Einträge in der Registry zeigen korrekt auf tifffilt.dll.
    Installationren von MODI oder Windows Filter Pack sind alle entfernt.

    DOCX/XLSX funktionieren problemlos.

    Folgender Code wird benutzt

    IFilter *pFilter = 0;
       HRESULT hr = LoadIFilter(filename, 0, (void **) &pFilter);
    
       // -> E_FAIL: An unknown error has occurred.
    
       if (SUCCEEDED(hr))
       {
    
       }
    

    Hat jemand ne Idee wie man das Problem weiter eingrenzen kann?



  • Der Vollständigkeithalber, falls jemand mal über das gleiche Problem stolpert.

    Unter einem 64Bit-Windows kann eine 32Bit Applikation den Windows TIFF IFilter nicht direkt laden. Das 32Bit Microsoft Filterpackage lässt sich auf 64 Bit auch nicht installieren. Es gibt zwar Ansätze die Dateien von Hand zu kopieren und die Registry anzupassen, was aber letztenendes nur gefrickelt ist.

    Lösung ist entweder die Registry selbst zu durchforsten und die entsprechende DLL selbst zu laden nebst GetProcAddess() etc. Dabei ist das Mapping von Wow6432NOde zu beachten. Der Debugger zeigt hier andere Werte als der Zugriff selbst

    ..... oder einfach eine 64 Bit Applikation zu bauen und schon funktionierts... 😉



  • OCRFilter schrieb:

    Lösung ist entweder die Registry selbst zu durchforsten und die entsprechende DLL selbst zu laden nebst GetProcAddess() etc. Dabei ist das Mapping von Wow6432NOde zu beachten. Der Debugger zeigt hier andere Werte als der Zugriff selbst

    Wie soll das funktionieren?
    Die DLL ist dann ja wieder eine 64 Bit DLL, und die kann nicht in einen 32 Bit Prozess geladen werden.

    Es bleibt also nur noch

    OCRFilter schrieb:

    ..... oder einfach eine 64 Bit Applikation zu bauen und schon funktionierts... 😉


Log in to reply