Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

COM Objects και C++

Îåêßíçóå áðü ôï ìÝëïò Fwteini. Τελευταία δημοσίευση από το μέλος Νατάσα Μανουσοπούλου στις 12-07-2006, 08:59. Υπάρχουν 3 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  21-06-2006, 23:17 14162

    COM Objects και C++

    Καλησπέρα, ελπίζω να  είναι το σωστό μέρος για να ρωτήσω!
    Προσπαθώ να χρησιμοποιήσω ένα COM Object (dll) και έιμαι λίγο μπερδεμένη. Έχω βρει τον παρακάτω κώδικα
     
    HRESULT hr;

     //Initialize COM
     CoInitialize(NULL);
     ILevelGetter *pc;

     //Φτιάχνω COM Object
     hr = CoCreateInstance(CLSID_ILevelGetter , NULL, CLSCTX_INPROC_SERVER, IID_ILevelGetter , (void**)&pc);

     if(SUCCEEDED(hr))
     {
      
      std::cout << "succees!\n";

      std::cout << hr
     }
     else
      std::cout << "failure!\n";

     CoUninitialize();
    όπου το ILevelGetter είναι το interface που έχει το COM.

    Το πρόβλημα μου είναι που πρέπει να είναι το dll ώστε να μπορεί να το αναγνωρίσει γιατί τώρα χτυπάει error ότι το ILevelGetter είναι undefined. Τι είδους project πρέπει να φτιάξω στο Visual Studio .NET (ή κάποιο άλλο) για να μπορέσω να χρησιμοποιήσω το COM;
    Please αν ξέρει κάποιος ας μου απαντήσει γαιτί είμαι σε πολύ δύσκολη θέση.

  •  21-06-2006, 23:58 14163 σε απάντηση της 14162

    Απ: COM Objects και C++

    Για να μην καθομαι και τα γράφω, διάβασε εδώ -> http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dncomg/html/msdn_components.asp λέει τι ακριβώς ειναι το interface ILevelGetter, πως πρέπει να γίνει define, τι πρέπει να κάνεις Inherit..Απαντάει ακόμα και στην ερώτησή σου για το τι είδους project πρέπει να κάνεις..Θα σε συμβούλευα να το διαβάσεις όλο το άρθρο..
    Παναγιώτης Κεφαλίδης

    "Για να επιτύχεις, θα πρέπει το πάθος σου για την επιτυχία να είναι μεγαλύτερο απο τον φόβο σου για την αποτυχία"

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Παρακαλώ διαβάστε τους όρους χρήσης.
  •  22-06-2006, 16:10 14178 σε απάντηση της 14163

    Απ: COM Objects και C++

    Ναι το έχω διαβάσει το άρθρο αλλά δεν βγάζω άκρη!

    Εγώ έχω ένα dll που έχει φτιάξει κάποιος άλλος και τίποτα παραπάνω και θέλω να χρησιμοποιήσω τις μεθόδους που έχει μέσα.

    Δεν νομίζω ότι είναι σαν αυτό που κάνει αυτός στο άρθρο στο οποίο με παρέπεμψες. Σε παρακαλώ αν μπορείς εξήγησέ μου.

  •  12-07-2006, 08:59 14621 σε απάντηση της 14162

    Απ: COM Objects και C++

    (Απαντάω λίγο αργά, αλλά ελπίζω να μην είναι πολύ αργά :-)
    Σε C++ project, αν είναι MFC, έχεις δύο τρόπους να χρησιμοποιήσεις COM object:
    • Με #import: Μέσα στο cpp όπου θα χρησιμοποιήσεις το COM object βάζεις
    #import "path\to\mydll.dll"
    Αυτό σου παράγει μέσα στον Debug/Release κατάλογο δύο αρχεία (tlh/tli) τα οποία περιέχουν smart pointer κλάσεις για τα COM objects που περιέχονται στη dll. Για περισσότερα, δες εδώ.
    • Από τον class wizard: Σε VS.NET 2003 με Add Class --> MFC class from ActiveX/typelib το οποίο φτιάχνει παρόμοιες wrapper κλάσεις. Μόνη απαίτηση εδώ, τα COM objects να υλοποιούν το IDispatch, γιατί αυτό χρησιμοποιεί.
    Αν δεν έχεις MFC project, η πρώτη λύση είναι πάντα στη διάθεσή σου.


    Νατάσα Μανουσοπούλου
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems