您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > d3d9编译错误及其解决方案
SDK中Sample编译错误及其解决方案2008-08-0921:08SDK中Sample的编译环境如果使用MicrosoftVisualStudio2005,在工具-选项-项目和解决方案-vc++目录中进行如下设置。可执行文件:D:\ProgramFiles\MicrosoftVisualStudio8\VCD:\ProgramFiles\MicrosoftVisualStudio8\VC\redist\Debug_NonRedist\x86\Microsoft.VC80.DebugMFCD:\ProgramFiles\MicrosoftVisualStudio8\VC\libD:\ProgramFiles\MicrosoftVisualStudio8\VC\atlmfc\libD:\ProgramFiles\MicrosoftVisualStudio8\VC\atlmfc\includeD:\ProgramFiles\MicrosoftVisualStudio8\VC\includeD:\DXSDK\LibD:\DXSDK\BinD:\DXSDK\Samples\C++\DirectShow\BaseClassesD:\DXSDK\Samples\C++\Common\IncludeD:\DXSDK\Include包含文件:D:\ProgramFiles\MicrosoftVisualStudio8\VC\includeD:\ProgramFiles\MicrosoftVisualStudio8\VC\atlmfc\includeD:\ProgramFiles\MicrosoftVisualStudio8\VC\PlatformSDK\IncludeD:\DXSDK\IncludeD:\DXSDK\Samples\C++\DirectShow\BaseClassesD:\DXSDK\Samples\C++\Common\Include库文件:D:\ProgramFiles\MicrosoftVisualStudio8\VC\PlatformSDK\LibD:\ProgramFiles\MicrosoftVisualStudio8\VC\libD:\ProgramFiles\MicrosoftVisualStudio8\VC\atlmfc\libD:\ProgramFiles\MicrosoftVisualStudio8\VCD:\ProgramFiles\MicrosoftVisualStudio8\VC\atlmfc\include\i386D:\DXSDK\LibD:\DXSDK\Samples\C++\DirectShow\BaseClasses\DebugD:\DXSDK\Samples\C++\DirectShow\BaseClasses\ReleaseD:\DXSDK\Samples\C++\DirectShow\BaseClasses1针对编译DXSDK\Samples\c++\Direct3D时出现的错误,进行解析。错误例子:CVTRES:fatalerrorCVT1100:重复的资源。type:MANIFEST,name:1,language:0×0409LINK:fatalerrorLNK1123:转换到COFF期间失败:文件无效或损坏解决方案:我的编译环境是MicrosoftVisualStudio2005将所有工程的属性(工程全选-右击-属性)-配置属性-清单工具-输入输出-嵌入清单,选择“否”,然后编译,就OK了。你可以参照微软的官方说明:针对出现未声明标识符的错误进行解析。错误例子:for(m=0;mpDevice-dwNumModes;m++){if(pDevice-modes[m].Width==640&&pDevice-modes[m].Height==480){errorC2065:“m”:未声明的标识符像这种错误,你可以查找它的定义,在将它的定义复制到错误行的前面。如上述例子中,你可以在for的上一行添加longm;。就可以了。3针对出现无法初始化问题的错误进行解析。错误例子:TCHAR*strLastSlash=_tcsrchr(str,TEXT(‘\\’))错误:errorC2440:“初始化”:无法从“constwchar_t*”转换为“TCHAR*”像这样的错误,你可以在=的右边进行强制转换。如下:TCHAR*strLastSlash=(TCHAR*)_tcsrchr(str,TEXT(‘\\’));4针对警告被视为错误的问题进行解析。错误例子:c:\dxsdk\samples\c++\misc\dxdiagreport\dxdiaginfo.cpp(322):errorC2220:警告被视为错误-没有生成“object”文件。这种错误的原因是:原因是该文件的代码页为英文,而我们系统中的代码页为中文。解决方案:启动MicrosoftVisualStudio2005,文件-打开-选择c:\dxsdk\samples\c++\misc\dxdiagreport\dxdiaginfo.cpp,然后保存。从新打开程序文件运行,此错误不再出现。如果上述不能去掉错误,还可以点击项目,右击选择属性-配置属性-c/c++-常规,将“警告视为错误”的选项改为“否”。就可以!5编译BaseClasses正在编译…dllentry.cppD:\ProgramFiles\MicrosoftVisualStudio8\VC\PlatformSDK\Include\winnt.h(222):errorC2146:语法错误:缺少“;”(在标识符“PVOID64”的前面)D:\ProgramFiles\MicrosoftVisualStudio8\VC\PlatformSDK\Include\winnt.h(222):errorC4430:缺少类型说明符-假定为int。注意:C++不支持默认intD:\ProgramFiles\MicrosoftVisualStudio8\VC\PlatformSDK\Include\winnt.h(5940):errorC2146:语法错误:缺少“;”(在标识符“Buffer”的前面)D:\ProgramFiles\MicrosoftVisualStudio8\VC\PlatformSDK\Include\winnt.h(5940):errorC4430:缺少类型说明符-假定为int。注意:C++不支持默认intD:\ProgramFiles\MicrosoftVisualStudio8\VC\PlatformSDK\Include\winnt.h(5940):errorC4430:缺少类型说明符-假定为int。注意:C++不支持默认intD:\DXSDK\Include\uuids.h:warningC4819:该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为Unicode格式以防止数据丢失生成日志保存在“file://d:\BaseClasses\Debug_Unicode\BuildLog.htm”BaseClasses-5个错误,个警告出现错误的地方:typedefvoid*PVOID;typedefvoid*POINTER_64PVOID64;更改:#definePOINTER_64__ptr64///////gaitypedefvoid*PVOID;typedefvoid*POINTER_64PVOID64;////错误:.\wxdebug.cpp(567):errorC4430:缺少类型说明符-假定为int。注意:C++不支持默认int错误地方:staticg_dwLastRefresh=0;修改:staticintg_dwLastRefresh=0;6编译Capture,无法打开libci.lib出现错误:LINK:fatalerrorLNK1104:无法打开文件“libci.lib”生成日志保存在“file://d:\DXSDK\Samples\C++\DirectShow\Capture\CaptureTex\Debug\BuildLog.htm”CaptureTex-1个错误,个警告错误原因:缺少数据库LIBCI.LIB在2003和2005中已经不存在了解决方案:将库文件指向VC6中的库文件。其他详细信息请见SDK中Sample编译错误及其解决方案(二)2008-08-0921:09SDK中Sample编译错误及其解决方案(二)编译Capture出现错误:LINK:fatalerrorLNK1104:无法打开文件“libci.lib”生成日志保存在“file://d:\DXSDK\Samples\C++\DirectShow\Capture\CaptureTex\Debug\BuildLog.htm”CaptureTex-1个错误,个警告错误原因:缺少数据库LIBCI.LIB在2003和2005中已经不存在了编译DMODEMO错误:..\..\..\Common\Src\dsutil.cpp(686):errorC2065:“i”:未声明的标识符错误的地方:if(i!=m_dwNumBuffers)returnm_apDSBuffer[i];elsereturnm_apDSBuffer[rand()%m_dwNumBuffers];更改:在前面添加unsignedchari;编译DMOSAMPLEd:\DXSDK\include\dmoimpl.h(622):errorC2065:“dw”:未声明的标识符d:\DXSDK\include\dmoimpl.h(588):编译类模板成员函数“HRESULTIMediaObjectImpl_DERIVED_,NUMBEROFINPUTS,NUMBEROFOUTPUTS::ProcessOutput(DWORD,DWORD,DMO_OUTPUT_DATA_BUFFER*,DWORD*)”时with[_DERIVED_=CSample,NUMBEROFINPUTS=1,NUMBEROFOUTPUTS=2]d:\dxsdk\samples\c++\directshow\dmo\dmosample\Sample.h(21):参见对正在编译的类模板实例化“IMediaObjectImpl_DERIVED_,NUMBEROFINPUTS,NUMBEROFOUTPUTS”的引用with[_DERIVED_=CSample,NUMBEROFINPUTS=1,NUMBEROFOUTPUTS=2]d:\DXSDK\include\dmoimpl.h(623):errorC2228:“.dwStatus”的左边必须有类/结构/联合d:\DXSDK\include\dmoimpl.h(624):errorC2228:“.fIncomplete”的左边必须有类/结构/联合d:\DXSDK\include\dmoimpl.h(626):errorC2228:“.fIncomplete”的左边必须有类/结构/联合sample.cppd:\DXSDK\include\uuids.h:warningC4819:该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为Unicode格式以防止数据丢失d:\DXSDK\include\dmoimpl.h(622):errorC2065:“dw”:未声明的标识符d:\DXSDK\include\dmoimpl.h(588):编译类模板成员函数“HRESULTIMediaObjectImpl_DERIVED_,NUMBEROFINPUTS,NUMBEROFOUTPUTS::ProcessOutput(DWORD,DWOR
本文标题:d3d9编译错误及其解决方案
链接地址:https://www.777doc.com/doc-2908797 .html