Announcement

Collapse
No announcement yet.

Probleme beim statischen einbinden einer DLL

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    Jede Funktion hat doch auch einen Index:<p>
    <b>GetProcAddress</b><br>
    The GetProcAddress function retrieves the address of an exported function or variable from the specified dynamic-link library (DLL).<p>
    FARPROC GetProcAddress(<br>
    HMODULE hModule, // handle to DLL module<br>
    LPCSTR lpProcName // function name<br>
    );<br>
    Parameters<br>
    hModule <br>
    [in] Handle to the DLL module that contains the function or variable. The LoadLibrary or GetModuleHandle function returns this handle.<br>
    lpProcName <br>
    [in] Pointer to a null-terminated string that specifies the function or variable name, or the function's ordinal value. If this parameter is an ordinal value, it must be in the low-order word; the high-order word must be zero.<p>
    Wenn Du die proc nicht über den Namen aufrufen kannst, wäre der Ordinal-Value vielleicht eine alternative.<p>
    Schöne Grüße, Mario Noac
    Schöne Grüße, Mario

    Comment


    • #17
      Dumme Frage: gehen denn andere Funktionen aus der DLL? Wenn ja dann wuerde ich eine kaputte DLL vermuten. Versuche auch mal die DLL mit einem Tool zu untersuchen. PeViewer aus der Jedi Code Library beispielsweise. Da diese Tools die Exporttabelle direkt lesen, koennte eine kaputte DLL auffallen

      Comment


      • #18
        danke robert ...
        wenn das eine ms vc++ spezifisch ausgelegt ist. dann sollte man nicht damit werben, das man auch mit delphi anwendungen entwickeln könnte.

        @mario: der robert hat mir den hinweis gegeben das ein unterstrich und @8 auf eine vc++ spezifische aufrufskonvention hinweist. werde mal philips darauf hinweisen.

        werde dann nochmal was posten, wenn eine antwort kommt.
        gruss
        ja

        Comment


        • #19
          Ich habe die DLLs bekommen und die Funktion wird als _InterfaceOpen@8 (Name ein bischen veraendert) exportiert. Wieterhin sind noch exportierte C++-Klassen zu sehen.<br>
          Damit ist klar das die Funktinoen fuer MS VC++ gedacht sind und wahrscheinlich dessen _fastcall calling convention haben. Offensichtlich Pfuscher bei Philips, die keine anstaendige Schnittstelle definieren koennen

          Comment


          • #20
            C++ Coder halt

            Man sollte aber auch mal einfach nach dem Start der Application mit LoadLibrary() die DLL laden, ohne Importe. Sollte schon dort ein Fehler auftreten dann benötigt die DLL entweder noch andere Sub-DLL's die nicht vorhanden sind, oder die DLL selber hat einen Fehler, z.b. weil sie eine mit MS VC++ compilierte EXE's erwartet.<br>

            Alles ist möglich mit solchen C++ DLL's von selbigen C++ Codern.<br>

            ABER!, wenn Du schon solche Probleme bekommst dann wurde die DLL von vornherein nicht als Import Bibliothek vorgesehen und es wird dir bei jedem Update immerwieder auf die Füß fallen.

            Gruß Hage

            Comment

            Working...
            X