ATL/Com DLL: Wie schwierig zu erstellen?



  • Hallo Forum,

    bei einem Projekt sollen einige Klassen in eine C++ ATL/COM DLL ausgelagert werden. Die DLL soll sowohl unter VB6 als auch unter C++ benutzbar sein.

    Ich dachte mir zuerst die Funktionalität zu erstellen und mich dann mit Com/Atl zu beschäftigen. Ist der Konvertierungsaufwand in diesem Fall groß oder kann ich meine Klassen einfach in ein Com/Atl Projekt importieren? Also: Muß ich mir erst ein Buch über Com/Atl reinziehen bevor ich anfange, oder kann ich die Funktionalität auf die Schnelle für die C++ fertig machen und mich dann in Ruhe um die Portierung nach Com/Atl kümmern?

    Kennt jemand ein gutes Tutorial? (Ich benutze noch Visual Studio 6)
    Hier scheint es einiges zu geben:
    http://www.codeproject.com/info/search.asp?cats=1&searchkw=atl&sd=11/15/1999&ed=8/6/2007&Page=3



  • VS Anfänger schrieb:

    Ist der Konvertierungsaufwand in diesem Fall groß oder kann ich meine Klassen einfach in ein Com/Atl Projekt importieren? Also: Muß ich mir erst ein Buch über Com/Atl reinziehen bevor ich anfange, oder kann ich die Funktionalität auf die Schnelle für die C++ fertig machen und mich dann in Ruhe um die Portierung nach Com/Atl kümmern?

    Es macht schon einen gewissen Unterschied, aber falls dich COM interessiert, schau mal in den "Verschenke ältere..." Thread von mir. Das "Goto COM" Buch ist noch nicht vergeben...

    cu André



  • Vielen Dank für das Angebot. 🙂 Unsere Bibliothek ist halbwegs aktuell.
    Ich denke ich werde doch als erstes ein ATL/COM Buch durchstöbern.



  • Tu das, ja.
    Der Aufwand C++ Code in ein (oder mehrere) COM Objekte zu verbasteln entscheidet sich eigentlich nur anhand des Interface'.

    Also überleg dir als erstes was du alles im Interface brauchst (möglichst abstrakt aber vollständig), und dann such dir im "COM Buch deiner Wahl" alles relevante zusammen damit du ein entsprechendes COM Interface bauen kannst.

    Dinge die u.U. nervig werden können/Arbeit machen werden sind Callbacks, Strings, Enumerationen etc.

    Weiters solltest du dich gut über die COM Apartment Models informieren. Im einfachsten Fall kannst du dein COM Objekt "single-threaded" machen ("STA"), dann ist die Implementierung am einfachsten. VB kommt gut mit solchen COM-Klassen/Objekten klar, allerdings wird die Verwendung aus z.B. C++ heraus genau dann nervig wenn man aus mehreren Threads auf ein Objekt zugreifen muss.



  • hustbaer schrieb:

    ...und dann such dir im "COM Buch deiner Wahl" alles relevante zusammen...

    Eine elegante Umschreibung für einen haufen Arbeit 😃

    Ich bastele mir was mit dem VS Assistenten und den Inet Tutorials zusammen. Mein Aufgabe sollte schließlich schon gestern fertig sein... wie immer 😞



  • Wenn du konkrete Fragen hast... stellen.
    Ich selbst hab mich mit COM schon etwas rumgeschlagen, und andere fähige Leute hier können das auch.
    Bzw. würde ich dann in Win32 fragen, gehört IMO dorthin, und dort lesen es auch eher die richtigen Leute als hier.


Anmelden zum Antworten