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

 

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

Visual studio .NET C++ Πρόβλημα με DirectShow Linking

Îåêßíçóå áðü ôï ìÝëïò mpeg2server. Τελευταία δημοσίευση από το μέλος Παναγιώτης Καναβός στις 09-09-2008, 16:29. Υπάρχουν 3 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  08-09-2008, 14:19 44533

    Visual studio .NET C++ Πρόβλημα με DirectShow Linking

    Σας χαιρετώ όλους.

    Συγχαρητήρια για την ιδέα αυτού του συνδέσμου.
    Έχω το Visual studio .NET (2002) professional και το πρόβλημα μου είναι ότι ο linker μου παρουσιάζει Linking Errors (VC++ 7.0).

    Όταν βγάλω τα σχόλια απο την #pragma το linking δεν παρουσιάζει σφάλμα όμως έχω runtime errors που κάνουν break.

    Παραθέτω και τα directories paths

    Includes
    C:\Program Files\Microsoft Platform SDK\include

    Linker
    C:\Program Files\Microsoft Platform SDK\lib



    Σας ευχαριστώ.
    Χασάπης Δ. Χρήστος


    Το πρόβλημα παρουσιάζεται στον κάτωθι κώδικα και το compilation γίνεται δίχως Common Language Runtime (όχι /clr)

    #include <windows.h>  
    #include <stdio.h>
    #include <dshow.h>

    //#pragma comment(lib,"strmiids.lib")

    IGraphBuilder *pGraph   = NULL;
    IMediaControl *pCO    = NULL;
    HRESULT hr;


    int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance, LPSTR lpszCmdParam, int nCmdShow)
    {

        hr = CoCreateInstance(CLSID_FilterGraph, NULL,
        CLSCTX_INPROC_SERVER, IID_IGraphBuilder, (void **)&pGraph);
        CoInitialize(NULL);
        pGraph->RenderFile(L"c:\\1.avi", NULL);
        pGraph->QueryInterface(IID_IMediaControl, (void **)&pCO);    
        pCO->Run();

    }






    hh fatal error LNK1120: 3 unresolved externals
    hh error LNK2001: unresolved external symbol _IID_IMediaControl
    hh error LNK2001: unresolved external symbol _IID_IGraphBuilder
    hh error LNK2001: unresolved external symbol _CLSID_FilterGraph


    Χασάπης Δ.Χρήστος
    ________________________________________
    Θέλω χρόνο να... σκέπτομαι...
    Δημοσίευση στην κατηγορία:
  •  08-09-2008, 14:45 44534 σε απάντηση της 44533

    Απ: Visual studio .NET C++ Πρόβλημα με DirectShow Linking

    Μα πού το βρήκες το Visual Studio 2002? Μήπως είναι καιρός να κάνεις κανένα upgrade? Αν όχι τίποτε άλλο, η υποστήριξη για C++ και το C++ standard βελτιώθηκε πολύ από το 2002 στο 2003, ακόμα περισσότερο στο 2005 και ακόμα ακόμα περισσότερο στο 2008. Κι έχει και τσάμπα έκδοση, την Visual C++ 2008. Όχι ότι παίζει ρόλο για την ερώτηση σου, αλλά για καμμία πιο περίπλοκη ερώτηση που θα βρεις άνθρωπο που τρέχει ακόμα την 2002 για να σε βοηθήσει? Να μην πούμε και για τη χρήση βιβλιοθηκών όπως η boost, οι οποίες απαιτούν καλύτερο standard compliance από το 2002! Ή για τον πολύ ευκολότερο τρόπο να δουλεύεις με COM αντικείμενα!

    Όσον αφορά την ερώτηση σου, χωρίς τα libs λογικό είναι να χτυπάει ο linker. Το θέμα είναι, γιατί χτυπάει στο runtime? Τί errors σου βγάζει? Δοκίμασες να κάνεις debug? Μήπως το πρόβλημα είναι στον κώδικά σου? Καταρχήν βλέπω ότι καλείς την CoInitialize(NULL) μετά την πρώτη κλήση στην CoCreateInstance. Αυτό είναι λάθος καθώς η CoCreateInstance πρέπει να καλείται πάντα πριν από οποιαδήποτε άλλη κλήση.

     

    Ρίξε και μία ματιά στο documentation. Υπάρχει έτοιμο ένα sample στο Platform SDK, το "How to play a file" το οποίο μάλλον κάνει αυτό που προσπαθείς να πετύχεις.


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  09-09-2008, 09:41 44546 σε απάντηση της 44534

    Απ: Visual studio .NET C++ Πρόβλημα με DirectShow Linking

    Φίλε Παναγιώτη,

    καταρχάς σε ευχαριστώ για την χρήσιμη διόρθωση. Όντως είχα δυσνοήσει την CoInitialize() οπότε όπως αντιλαμβάνεσαι η βοήθεια σου έλυσε το πρόβλημα μου!


          Όσο για το VS Pro 2002 είναι μία αγορά (1.400Euros) που είχα κάνει το 2002, μάλιστα το πακέτο ήρθε απευθείας απο την Ιρλανδία γιατί δεν υπήρχε στην Ελλάδα όμως έχει ορισμένα προβλήματα για παράδειγμα δεν κάνει Internet Update. Πληροφοριακά σε τηλεφωνική επικοινωνία που έχω κάνει με την Microsoft Hellas ενώ προσπάθησε να βοηθήσει, η απάντηση ήταν πως φταίει ο ISP, δοκιμάζοντας λοιπόν σχεδόν όλους τους ISPs δεν κατόρθωσα να βρω λύση. Το μήνυμα είναι : “Microsoft Visual Studio .NET setup has encountered an error while downloading required files from the Internet. Please check your Internet connection settings and try again."



    Σας ευχαριστώ.
    Χασάπης Δ. Χρήστος



    Χασάπης Δ.Χρήστος
    ________________________________________
    Θέλω χρόνο να... σκέπτομαι...
  •  09-09-2008, 16:29 44555 σε απάντηση της 44546

    Απ: Visual studio .NET C++ Πρόβλημα με DirectShow Linking

    Αμφιβάλλω αν θα βρεις support για Visual Studio 2002 πλέον. Έχουν περάσει 6 χρόνια και έχουν βγει άλλες 2 εκδόσεις του VS. Updates σίγουρα δεν θα βρεις απλά γιατί έχουν πάψει να βγαίνουν εδώ και χρόνια.


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems