dll, tlb - wie binde ich diese ein?



  • Ihc habe hier eine dll (http://jabbercom.sourceforge.net/). Ich möchte diese dll in eine ganz schlcihte konsolenanwendung einbinden, ohne mfc oder ähnlichem. Leider ist in dem archiv keine *.obj oder *.lib. allerdings ist dort eine tlb anzutreffen. kannich aus dieser und der dll mit msvc++ ein *.obj oder eine lib erzeugen?

    kann mir das jemand erklären wie ich die dll einbinde? ich habe mir das mfc breispiel angesehen. das funktioniert auch soweit, aber wie bekomm ich es ohne mfc hin?

    gruß tobias

    btw: das ist kein crossposting, sondern mir wurde empfolen, die frage hier erneut zu stellen, weil es doch msvc++ speziefisch sei.

    und wenn noch was unklar ist, der ursprüngliche thread: http://www.c-plusplus.net/forum/viewtopic.php?t=75039



  • ach, ich glaube ich wurde nur falsch verstanden. mit einbiunden meinte ich nicht, dass es nur eine exe gibt und die dll darin integriert ist, sondern ich die dll nutzen kann...ich habe zwar die mfc und sie läuft auch, aber ich möchte sie gerne nutzen, ohne mfc. ich habe ledigliche ein header, der aber mfc verwendet:

    class CJabberSession : public COleDispatchDriver 
    { 
    public: 
        CJabberSession() {}        // Calls COleDispatchDriver default constructor 
        CJabberSession(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {} 
        CJabberSession(const CJabberSession& dispatchSrc) : COleDispatchDriver(dispatchSrc) {} 
    
    // Attributes 
    public: 
    
    // Operations 
    public: 
        CString GetServer(); 
        void SetServer(LPCTSTR lpszNewValue); 
        CString GetUsername(); 
        void SetUsername(LPCTSTR lpszNewValue); 
        CString GetPassword(); 
        void SetPassword(LPCTSTR lpszNewValue); 
        BOOL GetAvailable(); 
        void SetAvailable(BOOL bNewValue); 
        LPDISPATCH GetRoster(); 
        void SendMessage(LPDISPATCH Msg); 
        void SendPresence(LPCTSTR JID, long PresenceType, LPCTSTR Status, LPDISPATCH XTag); 
        void SendMyPresence(); 
        void SendXML(LPCTSTR xml); 
        BOOL GetActive(); 
        CString GetStatus(); 
        void SetStatus(LPCTSTR lpszNewValue); 
        void DoConnect(BOOL NewUser, long AuthType); 
        void DoDisconnect(BOOL Immediate); 
        CString GetResource(); 
    [...] 
        void SetUseSSL(BOOL bNewValue); 
        CString GetMsgID(); 
    }; 
    [dazu kommen noch mehr klassen]
    

    wie muss man das file umschreiben, dass ich es auch als header für eine nicht-mfc-app nutzen kann?



  • wenn das ding eine typelib hat wirds wohl ohne mfc kaum gehn
    du könntest es mal mit loadlibrary versuchen

    und öffne die dll mal mit dem dependency walker (unter vstudio/common/tools)
    um zu schaun was sie für funktionen hat



  • Wenn die DLL eine COM-Komponente ist, wie du behauptest, dann benötigst du kein MFC. Du verwendest am besten die #import-Direktive um die tlh/tli-datein zu generieren und verwendest das Eregnis wie jede andere COM-Komponente. Beispiele dafür gibts beispielweise in der MSDN.



  • kann mir jemand nen beispiel geben. ich bin total verwirrt. ich bekomm die dll nicht zum laufen.


Anmelden zum Antworten