No se puede incluir el ejemplo de DirectShow y compilarlo (PushSourceDesktop)

Así que estoy tratando de compilar la muestra PushSourceDesktop con mi otro proyecto para poder usar la palabra clave 'nuevo' para crear un objeto directamente sin cargar un dll externo. Incluí todos los archivos en mi proyecto y agregué mi encabezado precompilado a los archivos .cpp. Tengo estos errores que realmente no puedo descifrar incluso con la ayuda de Google y otras búsquedas. Espero que alguien aquí pueda arrojar algo de luz, ¡gracias de antemano!

Error   4   error C2065: 'm_pString' : undeclared identifier    c:\program files\microsoft sdks\windows\v7.1\samples\multimedia\directshow\baseclasses\wxdebug.h    292 1   record3
Error   5   error C2065: 'm_pString' : undeclared identifier    c:\program files\microsoft sdks\windows\v7.1\samples\multimedia\directshow\baseclasses\wxdebug.h    316 1   record3
Error   1   error C2146: syntax error : missing ';' before identifier 'm_pString'   c:\program files\microsoft sdks\windows\v7.1\samples\multimedia\directshow\baseclasses\wxdebug.h    295 1   record3
Error   2   error C4430: missing type specifier - int assumed. Note: C++ does not support default-int   c:\program files\microsoft sdks\windows\v7.1\samples\multimedia\directshow\baseclasses\wxdebug.h    295 1   record3
Error   3   error C4430: missing type specifier - int assumed. Note: C++ does not support default-int   c:\program files\microsoft sdks\windows\v7.1\samples\multimedia\directshow\baseclasses\wxdebug.h    295 1   record3
    8   IntelliSense: identifier "PTCHAR" is undefined  c:\program files\microsoft sdks\windows\v7.1\samples\multimedia\directshow\baseclasses\wxdebug.h    295 5

preguntado el 01 de julio de 12 a las 18:07

1 Respuestas

El problema está relacionado con el orden de inclusión de los encabezados del SDK. Tal vez necesite agregar #include <tchar.h> en algún lugar encima del código desde PTCHAR es que el compilador no puede encontrar.

Debido a que DirectShow Base Classes es una base de clase bastante específica, le sugiero que no lo mezcle con otro código C++ que tenga (como ATL, WTL o MFC). Esto es posible, pero es probable que siga causando problemas similares al de su pregunta.

En cambio, puede mantener su filtro en una DLL separada, puede crear una instancia a través de CoCreateInstance o en privado a través de DllGetClassObject/CreateInstance, y comunicarle sobre interfaz privada.

Respondido 02 Jul 12, 11:07

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.