Probleme mit einem SDK



  • Hallo.

    Ich möchte demnächst mal ein kleines Programm für meine tv-karte schreiben.
    Habe mir das SDK von dem Hersteller Technisat heruntergeladen, die includes eingebunden und wollte direkt loslegen.

    Da hab ich erstmal eine include eingebunden:

    #include "ib2c2mpeg2tunerctrl.h"
    

    kompiliert und schon kamen da 12 fehler in diesem Headerfile:

    : error C2065: 'IB2C2MPEG2TunerCtrl': nichtdeklarierter Bezeichner
    c:\programme\microsoft visual studio 9.0\sdk\technisat\include\ib2c2mpeg2tunerctrl.h(57) : error C2065: 'IUnknown': nichtdeklarierter Bezeichner
    c:\programme\microsoft visual studio 9.0\sdk\technisat\include\ib2c2mpeg2tunerctrl.h(58) : error C2448: 'DECLARE_INTERFACE_': Funktionsstil-Initialisierung scheint eine Funktionsdefinition zu sein
    c:\programme\microsoft visual studio 9.0\sdk\technisat\include\ib2c2mpeg2tunerctrl.h(189) : error C2065: 'IB2C2MPEG2TunerCtrl2': nichtdeklarierter Bezeichner
    c:\programme\microsoft visual studio 9.0\sdk\technisat\include\ib2c2mpeg2tunerctrl.h(189) : error C2065: 'IB2C2MPEG2TunerCtrl': nichtdeklarierter Bezeichner
    c:\programme\microsoft visual studio 9.0\sdk\technisat\include\ib2c2mpeg2tunerctrl.h(190) : error C2448: 'DECLARE_INTERFACE_': Funktionsstil-Initialisierung scheint eine Funktionsdefinition zu sein
    c:\programme\microsoft visual studio 9.0\sdk\technisat\include\ib2c2mpeg2tunerctrl.h(256) : error C2065: 'IB2C2MPEG2TunerCtrl3': nichtdeklarierter Bezeichner
    c:\programme\microsoft visual studio 9.0\sdk\technisat\include\ib2c2mpeg2tunerctrl.h(256) : error C2065: 'IB2C2MPEG2TunerCtrl2': nichtdeklarierter Bezeichner
    c:\programme\microsoft visual studio 9.0\sdk\technisat\include\ib2c2mpeg2tunerctrl.h(257) : error C2448: 'DECLARE_INTERFACE_': Funktionsstil-Initialisierung scheint eine Funktionsdefinition zu sein
    c:\programme\microsoft visual studio 9.0\sdk\technisat\include\ib2c2mpeg2tunerctrl.h(284) : error C2065: 'IB2C2MPEG2TunerCtrl4': nichtdeklarierter Bezeichner
    c:\programme\microsoft visual studio 9.0\sdk\technisat\include\ib2c2mpeg2tunerctrl.h(284) : error C2065: 'IB2C2MPEG2TunerCtrl3': nichtdeklarierter Bezeichner
    c:\programme\microsoft visual studio 9.0\sdk\technisat\include\ib2c2mpeg2tunerctrl.h(285) : error C2448: 'DECLARE_INTERFACE_': Funktionsstil-Initialisierung scheint eine Funktionsdefinition zu sein

    Die Codestellen auf die sich diese Fehlermeldungen beziehen sind folgende:

    #if defined __linux__	// Class implementation for Linux
    
    class IB2C2MPEG2TunerCtrl
    {
    protected: // Data
    
    	CAVSrcFilter * m_pFilter;
    
    public:	// Constructor
    	IB2C2MPEG2TunerCtrl (CAVSrcFilter *);
    
    #else 					// COM implementation for Windows
    
    #ifdef __cplusplus
    extern "C" {
    #endif
    
    DECLARE_INTERFACE_(IB2C2MPEG2TunerCtrl, IUnknown)
    {
    
    #endif // defined __linux__
    
    ...
    
    #if defined __linux__	// Class implementation for Linux
    
    class IB2C2MPEG2TunerCtrl2 : public IB2C2MPEG2TunerCtrl
    {
    public:	// Constructor
    	IB2C2MPEG2TunerCtrl2 (CAVSrcFilter *);
    
    #else 					// COM implementation for Windows
    
    DECLARE_INTERFACE_(IB2C2MPEG2TunerCtrl2, IB2C2MPEG2TunerCtrl)
    {
    
    #endif // defined __linux__
    
    ..
    
    #if defined __linux__	// Class implementation for Linux
    
    class IB2C2MPEG2TunerCtrl3 : public IB2C2MPEG2TunerCtrl2
    {
    public:	// Constructor
    	IB2C2MPEG2TunerCtrl3 (CAVSrcFilter *);
    
    #else 					// COM implementation for Windows
    
    DECLARE_INTERFACE_(IB2C2MPEG2TunerCtrl3, IB2C2MPEG2TunerCtrl2)
    {
    
    #endif // defined __linux__
    

    Also alles Stellen, an denen etwas für Linux definiert wird.
    Allerdings hab ich überhaupt nix mit Linux am Hut.

    Kann mir hier vielleicht jemand helfen?
    Hab ich vergessen irgendwas zu linken oder festzulegen?

    Ich habe alles so gemacht, wie es in der recht mageren Anleitung drin stand.

    Benutze übrigens Visual Studio 2008 Express SP1, falls das noch wichtig ist.

    Vielen Dank schonmal.



  • Hallo,

    Max3000 schrieb:

    Da hab ich erstmal eine include eingebunden:

    #include "ib2c2mpeg2tunerctrl.h"
    

    Nur ein #include? Das wird nicht reichen, davor sollte mindestens noch <windows.h> includiert werden.

    MfG,

    Probe-Nutzer



  • Hab ich vergessen irgendwas zu linken oder festzulegen?

    Ich würde mal sagen, dass es da bestimmt noch libs dazugeliefert werden, welche du auch noch einbinden musst. Alleine die Header include reicht da nicht.



  • Mit windows.h ändert sich da gar nix. Und libs sind auch nicht dabei gewesen 😞



  • Mit windows.h ändert sich da gar nix

    Enthält das Projekt eine stdafx.h-Datei? Wenn ja, dann dort nachsehen, ob WIN32_LEAN_AND_MEAN oder VC_EXTRALEAN definiert wurde, wenn ja, auskommentieren, dann noch mal kompilieren.

    MfG,

    Probe-Nutzer



  • Also es enthält zwar eine stdafx.h-Datei, aber da steht nix von LEAN_AND_MEAN und sowas drin.



  • Dann stimmt vielleicht deine Reihenfolge nicht. Mit folgender Anordnung der Header kompiliert ein Programm bei mir einwandfrei:

    #include "stdafx.h"
    #include <windows.h>
    #include "ib2c2mpeg2tunerctrl.h"
    

    MfG,

    Probe-Nutzer



  • GENIAL! Danke, es geht. Hab die includes alle in der stdafx.h drin und zwar so:

    #include <stdio.h>
    #include <tchar.h>
    #include <windows.h>
    #include "ib2c2mpeg2tunerctrl.h"
    

    Windows.h hatte ich erst am ende, darum gings nicht.

    Viele Dank.
    Endlich kann ich mal loscoden ^^.

    Schön Gruß.


Anmelden zum Antworten