【转载】DirectShow 一些常见编译错误的处理

1.LINK : fatal error LNK1181: 无法打开输入文件“largeint.lib”

DXSDK 2005之后不再提供largeint.lib,直接在设置链接库中去掉该项即可。

2.error LNK2001: 无法解析的外部符号 _MEDIATYPE_Audio 或error LNK2001: 无法解析的外部符号 _IID_IAMErrorLog

在链接库中增加 strmiids.lib

3. error LNK2019: 无法解析的外部符号 “public: __thiscall CTransformFilter::CTransformFilter(wchar_t *,struct IUnknown *,struct _GUID const &)” (??0CTransformFilter@@QAE@PA_WPAUIUnknown@@ABU_GUID@@@Z),该符号在函数 “public: __thiscall CVcomVideoFilter::CVcomVideoFilter(void)” (??0CVcomVideoFilter@@QAE@XZ) 中被引用

将工程字符集属性设置由“使用 Unicode 字符集”改为“未设置”

4. error LNK2001: 无法解析的外部符号 _CLSID_YourFilterName

未引入头文件 #include <initguid.h> 放在最前

5.error LNK2001: 无法解析的外部符号 _IID_IMediaSample2

在链接库中增加 strmiids.lib

6.error LNK2005: _DllMain@12 已经在 msvcrtd.lib(dllmain.obj) 中定义

链接器-》忽略所有默认库

7. error C2065: “GUID_NULL”: 未声明的标识

#include <windows.h>

8.!!szObjectName ^ !!wszObjectName
At line 809 of ….\BaseClass\wxdebug.cpp

是因为release版链strmbasd.lib导致的,应该链strmbase.lib

9.fatal error LNK1104: cannot open file ‘..\..\common\wmstub.lib’

需要安装Windows Media Format 9 Series SDK

10.error C2146: syntax error : missing ‘;’ before identifier ‘PVOID64’

在stdafx.h或工程的最前面加上: #define POINTER_64 __ptr64



发表评论

邮箱地址不会被公开。