tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
3
ZUGRIFFE
755
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    kickerxy123 kickerxy123 ist offline Mitglied Gold
    Registriert seit
    Mar 2008
    Beiträge
    147
    Hallo!

    Also ich benutze Devarian-cpp und DirectX9.

    Soweit läuft auch alles ganz gut (mir ist bekannt, dass dev nicht offiziell unterstützt wird); es hapert nur an manchen Stellen.

    Bei DirectShow komme ich nicht so recht weiter. Zwar ist es prinzipiell möglich Devarian dafür fit zu machen, doch mir fehlt die rechte Eingebung.

    Dazu habe ich vorweg eine Frage.
    Ist es prinzipiell möglich DirectShow in visualc++ einzubinden, dort eine .lib zu erstellen, die - wie auch immer - directShow funktionalitäten bietet; diese dann mithilfe von mingw (Stichwort "reimp") in eine .a zu konvertieren und diese dann letztlich in devarian einzubinden? Oder führt dies zu nichts?

    Ansonsten hätte ich noch eine andere Idee.

    Übrigens benutze ich nicht das spezielle Dev-DX-Pack, sondern eine ganz normale Version.

    Ein Umstieg auf Visual-cpp o.ä. kommt nicht in Frage; da verzichte ich lieber auf DirectShow.


    lg kickerxy
     

  2. #2
    Anfänger92 Anfänger92 ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Ort
    Wesel (NRW)
    Beiträge
    217
    Hi,

    keien Ahnung was du gegen VisualStudio hast aber nun gut.

    Ich weiß zwar nich ob es mit ner lib geht, was es jedoch sollte, aber mit nen DLL geht es bestimmt. Du musst halt "nur" für alles mögliche Funktionen schreiben die den DX kram dann in der DLL erledigen.

    Gruß
    Anfänger
     
    Besucht meine Seite

    War mein Beitrag hilfreich? Dann dankt mir doch einfach ;)

  3. #3
    kickerxy123 kickerxy123 ist offline Mitglied Gold
    Registriert seit
    Mar 2008
    Beiträge
    147
    ja okay, gegen eine dll habe ich nichts einzuwenden.

    Klar bedeutet dies ein wenig Aufwand, aber es hält sich in Grenzen denke ich.

    Naja gegen Visual habe ich direkt nichts. Nur habe ich mich zum einen an Devarian gewöhnt; zum anderen habe ich keine Lust das bisher vorhandene nur wegen DirectShow auf Visual zu übertragen. Ich mag nun einmal das schlichte Devarian

    Danke für deine Antwort,

    ich werde nun versuchen die Idee umzusetzen.

    lg
    kickerxy


    #edit es scheint zu gehen... morgen werde ich es mit Sicherheit wissen.
    Danke nochmal

    kickerxy
    Geändert von kickerxy123 (06.09.09 um 22:46 Uhr)
     

  4. #4
    kickerxy123 kickerxy123 ist offline Mitglied Gold
    Registriert seit
    Mar 2008
    Beiträge
    147
    hm ich habe einige Probleme beim Umgang mit Visual :/

    Aber ok.

    ich habe nun folgenden Code
    Code cpp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    
     
    void createDxShow(void)
    {
    IGraphBuilder* pGraph;
     
    HRESULT hResult = CoCreateInstance(CLSID_FilterGraph,NULL,CLSCTX_INPROC_SERVER, IID_IGraphBuilder, (void**)&pGraph);
     
    if(FAILED(hResult))
    {
        //Hierbei muss in den Projektoptionen auf Multibyte statt Unicode gewechselt werden!
        MessageBox(NULL, "Fehler beim Erzeugen einer DirectShow relevanten Schnittstelle @ CoCreateInstance", "Information",MB_OK);
        std::string fehler;
        fehler = "undefined";
        if(hResult == E_NOINTERFACE) fehler = "E_NOINTERFACE";
        if(hResult == E_POINTER) fehler = "E_POINTER";
        if(hResult == CLASS_E_NOAGGREGATION) fehler = "CLASS_E_NOAGGREGATION";
        if(hResult == REGDB_E_CLASSNOTREG) fehler = "REGDB_E_CLASSNOTREG";
        if(hResult == S_OK) fehler = "S_OK";
        writeToLog(fehler);
    }
    else
    writeToLog("DirectShow Schnittstelle wurde erfolgreich erzeugt @ dxshow.dll");
     
     
     
    }

    dieser Code ist dann Bestandteil einer .dll.

    Diese lade ich nun in Devarian und führe diese Funktion aus.
    Nun springt er aber in die [[if(FAILED(hResult))]] rein... Tja und das wirklich seltsame, der String "fehler" bleibt bei "undefined"! Laut Microsoft gibt es aber nur die 5 Möglichkeiten, warum wird die Variable fehler dann nciht verändert? Oder liegt es am Aufruf von Devarian?



    #edit Problem gelöst.
    Es lag daran, dass ich zuvor nicht
    Code cpp:
    1
    
    CoInitialize(NULL);
    angegeben habe :/ seltsam nur, dass er dabei einen unbekannten Fehler zurückgibt und auch seltsam, dass in meinem Buch dieser Aufruf nciht vorhanden ist.

    #edit 2 Jup es geht =)

    Er hat meine mp3 sowie meine avi problemlos in Dev über die DLL abgespielt =)
    Geändert von kickerxy123 (07.09.09 um 17:05 Uhr)
     

Ähnliche Themen

  1. Desktopvido mit DirectShow
    Von GartenUmgraben im Forum .NET Grafik und Sound
    Antworten: 0
    Letzter Beitrag: 07.12.07, 14:50
  2. Videocapturing mit Directshow
    Von TriipaxX im Forum C/C++
    Antworten: 0
    Letzter Beitrag: 09.07.07, 23:02
  3. DirectShow vs. DVBT
    Von Passer im Forum .NET Grafik und Sound
    Antworten: 2
    Letzter Beitrag: 28.09.05, 22:40
  4. CD-Audio -> MP3 mit DirectShow
    Von Sir_Kraebbchen im Forum C/C++
    Antworten: 0
    Letzter Beitrag: 25.08.05, 00:40
  5. DirectShow und Dev-C++ 4.9.8.3
    Von ernii im Forum C/C++
    Antworten: 9
    Letzter Beitrag: 24.03.04, 10:16