[向happydeer提问] 编译《Windows Media编程导向》里的实例程序WmCopy出错。不知为何?
正在编译...
StdAfx.cpp
WINVER not defined. Defaulting to 0x0501 (Windows XP and Windows .NET Server)
e:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\ShObjIdl.h(1916) : error C2365: “SHCOLSTATE_TYPE_STR” : 重定义;以前的定义是“枚举数”
c:\WMSDK\WMFSDK11\include\shtypes.h(425) : 参见“SHCOLSTATE_TYPE_STR”的声明
e:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\ShObjIdl.h(1917) : error C2365: “SHCOLSTATE_TYPE_INT” : 重定义;以前的定义是“枚举数”
c:\WMSDK\WMFSDK11\include\shtypes.h(426) : 参见“SHCOLSTATE_TYPE_INT”的声明
e:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\ShObjIdl.h(1918) : error C2365: “SHCOLSTATE_TYPE_DATE” : 重定义;以前的定义是“枚举数”
c:\WMSDK\WMFSDK11\include\shtypes.h(427) : 参见“SHCOLSTATE_TYPE_DATE”的声明
e:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\ShObjIdl.h(1919) : error C2365: “SHCOLSTATE_TYPEMASK” : 重定义;以前的定义是“枚举数”
c:\WMSDK\WMFSDK11\include\shtypes.h(428) : 参见“SHCOLSTATE_TYPEMASK”的声明
e:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\ShObjIdl.h(1920) : error C2365: “SHCOLSTATE_ONBYDEFAULT” : 重定义;以前的定义是“枚举数”
c:\WMSDK\WMFSDK11\include\shtypes.h(429) : 参见“SHCOLSTATE_ONBYDEFAULT”的声明
e:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\ShObjIdl.h(1921) : error C2365: “SHCOLSTATE_SLOW” : 重定义;以前的定义是“枚举数”
c:\WMSDK\WMFSDK11\include\shtypes.h(430) : 参见“SHCOLSTATE_SLOW”的声明
e:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\ShObjIdl.h(1922) : error C2365: “SHCOLSTATE_EXTENDED” : 重定义;以前的定义是“枚举数”
c:\WMSDK\WMFSDK11\include\shtypes.h(431) : 参见“SHCOLSTATE_EXTENDED”的声明
e:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\ShObjIdl.h(1923) : error C2365: “SHCOLSTATE_SECONDARYUI” : 重定义;以前的定义是“枚举数”
c:\WMSDK\WMFSDK11\include\shtypes.h(432) : 参见“SHCOLSTATE_SECONDARYUI”的声明
e:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\ShObjIdl.h(1924) : error C2365: “SHCOLSTATE_HIDDEN” : 重定义;以前的定义是“枚举数”
c:\WMSDK\WMFSDK11\include\shtypes.h(433) : 参见“SHCOLSTATE_HIDDEN”的声明
e:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\ShObjIdl.h(1926) : error C2365: “SHCOLSTATE_PREFER_VARCMP” : 重定义;以前的定义是“枚举数”
c:\WMSDK\WMFSDK11\include\shtypes.h(434) : 参见“SHCOLSTATE_PREFER_VARCMP”的声明
e:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\ShObjIdl.h(1926) : error C2371: “SHCOLSTATE” : 重定义;不同的基类型
c:\WMSDK\WMFSDK11\include\shtypes.h(444) : 参见“SHCOLSTATE”的声明
e:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\ShObjIdl.h(1934) : error C2371: “SHCOLUMNID” : 重定义;不同的基类型
c:\WMSDK\WMFSDK11\include\shtypes.h(448) : 参见“SHCOLUMNID”的声明
e:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\ShlObj.h(2686) : warning C4005: “REFTASKOWNERID” : 宏重定义
c:\WMSDK\WMFSDK11\include\shtypes.h(379) : 参见“REFTASKOWNERID”的前一个定义
生成日志保存在“file://c:\Documents and Settings\Administrator\桌面\WmCopy\Debug\BuildLog.htm”中
WmCopy - 12 错误,1 警告
---------------------- 完成 ---------------------
全部重新生成: 0 已成功, 1 已失败, 0 已跳过
[解决办法]
你用的WMFSDK11版本太高了,有头文件定义冲突。建议下载wmf sdk 9或9.5