1:Error translating g:/驱动程序/2004-07-21_tiamoDisk/tiamoDisk/bin/check/tiamoBus.sys: Matching PDB file not found.
是因为它不支持中文路径名称,即文件的路径中不允许有中文
2:SDK中Sample的编译环境
如果使用Microsoft Visual Studio 2005,在工具->选项->项目和解决方案->vc++目录中进行如下设置。
可执行文件:
D:/Program Files/Microsoft Visual Studio 8/VC
D:/Program Files/Microsoft Visual Studio 8/VC/redist/Debug_NonRedist/x86
/Microsoft.VC80.DebugMFC
D:/Program Files/Microsoft Visual Studio 8/VC/lib
D:/Program Files/Microsoft Visual Studio 8/VC/atlmfc/lib
D:/Program Files/Microsoft Visual Studio 8/VC/atlmfc/include
D:/Program Files/Microsoft Visual Studio 8/VC/include
D:/DXSDK/Lib
D:/DXSDK/Bin
D:/DXSDK/Samples/C++/DirectShow/BaseClasses
D:/DXSDK/Samples/C++/Common/Include
D:/DXSDK/Include
包含文件:
D:/Program Files/Microsoft Visual Studio 8/VC/include
D:/Program Files/Microsoft Visual Studio 8/VC/atlmfc/include
D:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/Include
D:/DXSDK/Include
D:/DXSDK/Samples/C++/DirectShow/BaseClasses
D:/DXSDK/Samples/C++/Common/Include
库文件:
D:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/Lib
D:/Program Files/Microsoft Visual Studio 8/VC/lib
D:/Program Files/Microsoft Visual Studio 8/VC/atlmfc/lib
D:/Program Files/Microsoft Visual Studio 8/VC
D:/Program Files/Microsoft Visual Studio 8/VC/atlmfc/include/i386
D:/DXSDK/Lib
D:/DXSDK/Samples/C++/DirectShow/BaseClasses/Debug
D:/DXSDK/Samples/C++/DirectShow/BaseClasses/Release
D:/DXSDK/Samples/C++/DirectShow/BaseClasses
1针对编译DXSDK/Samples/c++/Direct3D时出现的错误,进行解析。
错误例子:
CVTRES : fatal error CVT1100: 重复的资源。type:MANIFEST, name:1, language:0×0409
LINK : fatal error LNK1123: 转换到COFF 期间失败: 文件无效或损坏
解决方案:
我的编译环境是Microsoft Visual Studio 2005
将所有工程的属性(工程全选->右击->属性)->配置属性->清单工具->输入输出->嵌入清单,选择“否”,然后编译,就OK了。
你可以参照微软的官方说明:http://support.microsoft.com/kb/320216/zh-cn
2针对出现未声明标识符的错误进行解析。
错误例子:for( m=0; m<pDevice->dwNumModes; m++ )
{
if( pDevice->modes[m].Width==640 && pDevice->modes[m].Height==480 )
{
error C2065: “m”: 未声明的标识符
像这种错误,你可以查找它的定义,在将它的定义复制到错误行的前面。如上述例子中,你可以在for的上一行添加long m;。就可以了。
3针对出现无法初始化问题的错误进行解析。
错误例子:
TCHAR* strLastSlash = _tcsrchr( str, TEXT(‘//’) )
错误:error C2440: “初始化”: 无法从“const wchar_t *”转换为“TCHAR *”
像这样的错误,你可以在=的右边进行强制转换。如下:
TCHAR* strLastSlash = (TCHAR*)_tcsrchr( str, TEXT(‘//’) );
4针对警告被视为错误的问题进行解析。
错误例子:
c:/dxsdk/samples/c++/misc/dxdiagreport/dxdiaginfo.cpp(322) : error C2220: 警告被视为错误- 没有生成“object”文件。
这种错误的原因是:原因是该文件的代码页为英文,而我们系统中的代码页为中文。
解决方案:启动Microsoft Visual Studio 2005,文件->打开->选择c:/dxsdk/samples/c++/misc/dxdiagreport/dxdiaginfo.cpp,然后保存。从新打开程序文件运行,此错误不再出现。
如果上述不能去掉错误,还可以点击项目,右击选择属性->配置属性->c/c++->常规,将“警告视为错误”的选项改为“否”。就可以!
5编译BaseClasses
正在编译…
dllentry.cpp
D:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/Include/winnt.h(222) : error C2146: 语法错误: 缺少“;”(在标识符“PVOID64”的前面)
D:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/Include/winnt.h(222) : error C4430: 缺少类型说明符- 假定为int。注意: C++ 不支持默认int
D:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/Include/winnt.h(5940) : error C2146: 语法错误: 缺少“;”(在标识符“Buffer”的前面)
D:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/Include/winnt.h(5940) : error C4430: 缺少类型说明符- 假定为int。注意: C++ 不支持默认int
D:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/Include/winnt.h(5940) : error C4430: 缺少类型说明符- 假定为int。注意: C++ 不支持默认int
D:/DXSDK/Include/uuids.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为Unicode 格式以防止数据丢失
生成日志保存在“file://d:/BaseClasses/Debug_Unicode/BuildLog.htm”
BaseClasses - 5 个错误,个警告
出现错误的地方:
typedef void *PVOID;
typedef void * POINTER_64 PVOID64;
更改:
#define POINTER_64 __ptr64///gai
typedef void *PVOID;
typedef void * POINTER_64 PVOID64;
错误:./wxdebug.cpp(567) : error C4430: 缺少类型说明符- 假定为int。注意: C++ 不支持默认int
错误地方:static g_dwLastRefresh = 0;
修改:static int g_dwLastRefresh = 0;
6编译Capture,无法打开libci.lib
出现错误:LINK : fatal error LNK1104: 无法打开文件“libci.lib”
生成日志保存在“file://d:/DXSDK/Samples/C++/DirectShow/Capture/CaptureTex/Debug/BuildLog.htm”
CaptureTex - 1 个错误,个警告
错误原因:缺少数据库LIBCI.LIB在2003和2005中已经不存在了
解决方案:将库文件指向VC6中的库文件。
其他详细信息请见
SDK中Sample编译错误及其解决方案(二)
是因为它不支持中文路径名称,即文件的路径中不允许有中文
2:SDK中Sample的编译环境
如果使用Microsoft Visual Studio 2005,在工具->选项->项目和解决方案->vc++目录中进行如下设置。
可执行文件:
D:/Program Files/Microsoft Visual Studio 8/VC
D:/Program Files/Microsoft Visual Studio 8/VC/redist/Debug_NonRedist/x86
/Microsoft.VC80.DebugMFC
D:/Program Files/Microsoft Visual Studio 8/VC/lib
D:/Program Files/Microsoft Visual Studio 8/VC/atlmfc/lib
D:/Program Files/Microsoft Visual Studio 8/VC/atlmfc/include
D:/Program Files/Microsoft Visual Studio 8/VC/include
D:/DXSDK/Lib
D:/DXSDK/Bin
D:/DXSDK/Samples/C++/DirectShow/BaseClasses
D:/DXSDK/Samples/C++/Common/Include
D:/DXSDK/Include
包含文件:
D:/Program Files/Microsoft Visual Studio 8/VC/include
D:/Program Files/Microsoft Visual Studio 8/VC/atlmfc/include
D:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/Include
D:/DXSDK/Include
D:/DXSDK/Samples/C++/DirectShow/BaseClasses
D:/DXSDK/Samples/C++/Common/Include
库文件:
D:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/Lib
D:/Program Files/Microsoft Visual Studio 8/VC/lib
D:/Program Files/Microsoft Visual Studio 8/VC/atlmfc/lib
D:/Program Files/Microsoft Visual Studio 8/VC
D:/Program Files/Microsoft Visual Studio 8/VC/atlmfc/include/i386
D:/DXSDK/Lib
D:/DXSDK/Samples/C++/DirectShow/BaseClasses/Debug
D:/DXSDK/Samples/C++/DirectShow/BaseClasses/Release
D:/DXSDK/Samples/C++/DirectShow/BaseClasses
1针对编译DXSDK/Samples/c++/Direct3D时出现的错误,进行解析。
错误例子:
CVTRES : fatal error CVT1100: 重复的资源。type:MANIFEST, name:1, language:0×0409
LINK : fatal error LNK1123: 转换到COFF 期间失败: 文件无效或损坏
解决方案:
我的编译环境是Microsoft Visual Studio 2005
将所有工程的属性(工程全选->右击->属性)->配置属性->清单工具->输入输出->嵌入清单,选择“否”,然后编译,就OK了。
你可以参照微软的官方说明:http://support.microsoft.com/kb/320216/zh-cn
2针对出现未声明标识符的错误进行解析。
错误例子:for( m=0; m<pDevice->dwNumModes; m++ )
{
if( pDevice->modes[m].Width==640 && pDevice->modes[m].Height==480 )
{
error C2065: “m”: 未声明的标识符
像这种错误,你可以查找它的定义,在将它的定义复制到错误行的前面。如上述例子中,你可以在for的上一行添加long m;。就可以了。
3针对出现无法初始化问题的错误进行解析。
错误例子:
TCHAR* strLastSlash = _tcsrchr( str, TEXT(‘//’) )
错误:error C2440: “初始化”: 无法从“const wchar_t *”转换为“TCHAR *”
像这样的错误,你可以在=的右边进行强制转换。如下:
TCHAR* strLastSlash = (TCHAR*)_tcsrchr( str, TEXT(‘//’) );
4针对警告被视为错误的问题进行解析。
错误例子:
c:/dxsdk/samples/c++/misc/dxdiagreport/dxdiaginfo.cpp(322) : error C2220: 警告被视为错误- 没有生成“object”文件。
这种错误的原因是:原因是该文件的代码页为英文,而我们系统中的代码页为中文。
解决方案:启动Microsoft Visual Studio 2005,文件->打开->选择c:/dxsdk/samples/c++/misc/dxdiagreport/dxdiaginfo.cpp,然后保存。从新打开程序文件运行,此错误不再出现。
如果上述不能去掉错误,还可以点击项目,右击选择属性->配置属性->c/c++->常规,将“警告视为错误”的选项改为“否”。就可以!
5编译BaseClasses
正在编译…
dllentry.cpp
D:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/Include/winnt.h(222) : error C2146: 语法错误: 缺少“;”(在标识符“PVOID64”的前面)
D:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/Include/winnt.h(222) : error C4430: 缺少类型说明符- 假定为int。注意: C++ 不支持默认int
D:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/Include/winnt.h(5940) : error C2146: 语法错误: 缺少“;”(在标识符“Buffer”的前面)
D:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/Include/winnt.h(5940) : error C4430: 缺少类型说明符- 假定为int。注意: C++ 不支持默认int
D:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/Include/winnt.h(5940) : error C4430: 缺少类型说明符- 假定为int。注意: C++ 不支持默认int
D:/DXSDK/Include/uuids.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为Unicode 格式以防止数据丢失
生成日志保存在“file://d:/BaseClasses/Debug_Unicode/BuildLog.htm”
BaseClasses - 5 个错误,个警告
出现错误的地方:
typedef void *PVOID;
typedef void * POINTER_64 PVOID64;
更改:
#define POINTER_64 __ptr64///gai
typedef void *PVOID;
typedef void * POINTER_64 PVOID64;
错误:./wxdebug.cpp(567) : error C4430: 缺少类型说明符- 假定为int。注意: C++ 不支持默认int
错误地方:static g_dwLastRefresh = 0;
修改:static int g_dwLastRefresh = 0;
6编译Capture,无法打开libci.lib
出现错误:LINK : fatal error LNK1104: 无法打开文件“libci.lib”
生成日志保存在“file://d:/DXSDK/Samples/C++/DirectShow/Capture/CaptureTex/Debug/BuildLog.htm”
CaptureTex - 1 个错误,个警告
错误原因:缺少数据库LIBCI.LIB在2003和2005中已经不存在了
解决方案:将库文件指向VC6中的库文件。
其他详细信息请见
SDK中Sample编译错误及其解决方案(二)