版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、SDK中Sample编译错误及其解决方案SDK中Sample的编译环境如果使用Microsoft Visual Studio 2005,在工具-选项-项目和解决方案-vc+目录中进行如下设置。可执行文件:D:Program FilesMicrosoft Visual Studio 8VCD:Program FilesMicrosoft Visual Studio 8VCredistDebug_NonRedistx86D:Program FilesMicrosoft Visual Studio 8VClibD:Program FilesMicrosoft Visual Studio 8VCatl
2、mfclibD:Program FilesMicrosoft Visual Studio 8VCatlmfcincludeD:Program FilesMicrosoft Visual Studio 8VCincludeD:DXSDKLibD:DXSDKBinD:DXSDKSamplesC+DirectShowBaseClassesD:DXSDKSamplesC+CommonIncludeD:DXSDKInclude包含文件:D:Program FilesMicrosoft Visual Studio 8VCincludeD:Program FilesMicrosoft Visual Stud
3、io 8VCatlmfcincludeD:Program FilesMicrosoft Visual Studio 8VCPlatformSDKIncludeD:DXSDKIncludeD:DXSDKSamplesC+DirectShowBaseClassesD:DXSDKSamplesC+CommonInclude库文件:D:Program FilesMicrosoft Visual Studio 8VCPlatformSDKLibD:Program FilesMicrosoft Visual Studio 8VClibD:Program FilesMicrosoft Visual Stud
4、io 8VCatlmfclibD:Program FilesMicrosoft Visual Studio 8VCD:Program FilesMicrosoft Visual Studio 8VCatlmfcincludei386D:DXSDKLibD:DXSDKSamplesC+DirectShowBaseClassesDebugD:DXSDKSamplesC+DirectShowBaseClassesReleaseD:DXSDKSamplesC+DirectShowBaseClasses1针对编译DXSDKSamplesc+Direct3D时出现的错误,进行解析。错误例子: CVTRES
5、 : fatal error CVT1100: 重复的资源。type:MANIFEST, name:1, language:00409LINK : fatal error LNK1123: 转换到COFF 期间失败: 文件无效或损坏 解决方案:我的编译环境是Microsoft Visual Studio 2005将所有工程的属性(工程全选-右击-属性)-配置属性-清单工具-输入输出-嵌入清单,选择“否”,然后编译,就OK了。2针对出现未声明标识符的错误进行解析。错误例子:for( m=0; mdwNumModes; m+ ) if( pDevice-modesm.Width=640 & pDe
6、vice-modesm.Height=480 ) error C2065: “m”: 未声明的标识符像这种错误,你可以查找它的定义,在将它的定义复制到错误行的前面。如上述例子中,你可以在for的上一行添加long m;。就可以了。3针对出现无法初始化问题的错误进行解析。错误例子:TCHAR* strLastSlash = _tcsrchr( str, TEXT() )错误:error C2440: “初始化”: 无法从“const wchar_t *”转换为“TCHAR *”像这样的错误,你可以在=的右边进行强制转换。如下:TCHAR* strLastSlash = (TCHAR*)_tcsr
7、chr( str, TEXT() );4针对警告被视为错误的问题进行解析。错误例子:c:dxsdksamplesc+miscdxdiagreportdxdiaginfo.cpp(322) : error C2220: 警告被视为错误- 没有生成“object”文件。这种错误的原因是:原因是该文件的代码页为英文,而我们系统中的代码页为中文。解决方案:启动Microsoft Visual Studio 2005,文件-打开-选择c:dxsdksamplesc+miscdxdiagreportdxdiaginfo.cpp,然后保存。从新打开程序文件运行,此错误不再出现。如果上述不能去掉错误,还可以点
8、击项目,右击选择属性-配置属性-c/c+-常规,将“警告视为错误”的选项改为“否”。就可以!5编译BaseClassesD:DX90SDKInclude D:DX90SDKSamplesC+DirectShowBaseClasses D:DX90SDKSamplesC+Common D:DX90SDKLib D:DX90SDKSamplesC+DirectShowBaseClassesDebug D:DX90SDKSamplesC+DirectShowBaseClassesDebug_Unicode D:DX90SDKSamplesC+DirectShowBaseClassesRelease
9、1, winnt.h 222 #define POINTER_64 _PTR642, ctlutil.h operator = (LONG) 项目-属性-属性配置-C+、- 命令行-附加选项 wd4430 指定 LONG operator = (LONG)3 warning 4996 _CRT_SECURE_NO_DEPRECATE4, static DWORD g_dwLastRefresh5, count 移到循环体外 iDone .debug_uncord _CRT_NON_CONFORMING_SWPRINTFS6 D:DX90SDKUtilities graphedt.exe 正在编
10、译dllentry.cppD:Program FilesMicrosoft Visual Studio 8VCPlatformSDKIncludewinnt.h(222) : error C2146: 语法错误: 缺少“;”(在标识符“PVOID64”的前面)D:Program FilesMicrosoft Visual Studio 8VCPlatformSDKIncludewinnt.h(222) : error C4430: 缺少类型说明符- 假定为int。注意: C+ 不支持默认intD:Program FilesMicrosoft Visual Studio 8VCPlatformS
11、DKIncludewinnt.h(5940) : error C2146: 语法错误: 缺少“;”(在标识符“Buffer”的前面)D:Program FilesMicrosoft Visual Studio 8VCPlatformSDKIncludewinnt.h(5940) : error C4430: 缺少类型说明符- 假定为int。注意: C+ 不支持默认intD:Program FilesMicrosoft Visual Studio 8VCPlatformSDKIncludewinnt.h(5940) : error C4430: 缺少类型说明符- 假定为int。注意: C+ 不支
12、持默认intD:DXSDKIncludeuuids.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为Unicode 格式以防止数据丢失生成日志保存在“file:/d:BaseClassesDebug_UnicodeBuildLog.htm”BaseClasses - 5 个错误,个警告出现错误的地方:typedef void *PVOID;typedef void * POINTER_64 PVOID64;更改:#define POINTER_64 _ptr64/gaitypedef void *PVOID;typedef void *
13、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:DXSDKSamplesC+DirectShowCaptureCaptureTexDebugBuildLog.ht
14、m”CaptureTex - 1 个错误,个警告错误原因:缺少数据库LIBCI.LIB在2003和2005中已经不存在了解决方案:将库文件指向VC6中的库文件。编译Capture出现错误:LINK : fatal error LNK1104: 无法打开文件“libci.lib”生成日志保存在“file:/d:DXSDKSamplesC+DirectShowCaptureCaptureTexDebugBuildLog.htm”CaptureTex - 1 个错误,个警告错误原因:缺少数据库LIBCI.LIB在2003和2005中已经不存在了编译DMODEMO错误:.CommonSrcdsutil
15、.cpp(686) : error C2065: “i”: 未声明的标识符错误的地方:if( i != m_dwNumBuffers ) return m_apDSBuffer i ; else return m_apDSBuffer rand() % m_dwNumBuffers ;更改:在前面添加 unsigned char i;编译DMOSAMPLEd:DXSDKincludedmoimpl.h(622) : error C2065: “dw”: 未声明的标识符 d:DXSDKincludedmoimpl.h(588): 编译类模板成员函数“HRESULT IMediaObjectImp
16、l:ProcessOutput(DWORD,DWORD,DMO_OUTPUT_DATA_BUFFER *,DWORD *)”时 with _DERIVED_=CSample, NUMBEROFINPUTS=1, NUMBEROFOUTPUTS=2 d:dxsdksamplesc+directshowdmodmosampleSample.h(21): 参见对正在编译的类模板实例化“IMediaObjectImpl”的引用 with _DERIVED_=CSample, NUMBEROFINPUTS=1, NUMBEROFOUTPUTS=2 d:DXSDKincludedmoimpl.h(623)
17、 : error C2228: “.dwStatus”的左边必须有类/结构/联合d:DXSDKincludedmoimpl.h(624) : error C2228: “.fIncomplete”的左边必须有类/结构/联合d:DXSDKincludedmoimpl.h(626) : error C2228: “.fIncomplete”的左边必须有类/结构/联合sample.cppd:DXSDKincludeuuids.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为Unicode 格式以防止数据丢失d:DXSDKincludedmoim
18、pl.h(622) : error C2065: “dw”: 未声明的标识符 d:DXSDKincludedmoimpl.h(588): 编译类模板成员函数“HRESULT IMediaObjectImpl:ProcessOutput(DWORD,DWORD,DMO_OUTPUT_DATA_BUFFER *,DWORD *)”时 with _DERIVED_=CSample, NUMBEROFINPUTS=1, NUMBEROFOUTPUTS=2 d:dxsdksamplesc+directshowdmodmosampleSample.h(21): 参见对正在编译的类模板实例化“IMediaO
19、bjectImpl”的引用 with _DERIVED_=CSample, NUMBEROFINPUTS=1, NUMBEROFOUTPUTS=2 d:DXSDKincludedmoimpl.h(623) : error C2228: “.dwStatus”的左边必须有类/结构/联合d:DXSDKincludedmoimpl.h(624) : error C2228: “.fIncomplete”的左边必须有类/结构/联合d:DXSDKincludedmoimpl.h(626) : error C2228: “.fIncomplete”的左边必须有类/结构/联合state.cppStdAfx.
20、cpputil.cpp正在生成代码生成日志保存在“file:/d:DXSDKSamplesC+DirectShowDMODMOSampleDebug_UnicodeBuildLog.htm”dmosample - 8 个错误,个警告= 生成: 0 已成功, 1 已失败, 0 最新, 0 已跳过=更改:在出错的语句前加上DWORD_PTR dw;编译PlayDVD正在链接PlayDVD.obj : error LNK2001: 无法解析的外部符号“unsigned int (_stdcall* ATL:g_pfnGetThreadACP)(void)” (?g_pfnGetThreadACPAT
21、L3P6GIXZA).Debug_Unicode/PlayDVD.exe : fatal error LNK1120: 1 个无法解析的外部命令生成日志保存在“file:/d:DXSDKSamplesC+DirectShowDVDPlayDVDDebug_UnicodeBuildLog.htm”PlayDVD - 2 个错误,个警告= 全部重新生成: 0 已成功, 1 已失败, 0 已跳过=编译DVD错误:PlayDVD.obj : error LNK2001: 无法解析的外部符号“unsigned int (_stdcall* ATL:g_pfnGetThreadACP)(void)” (?
22、g_pfnGetThreadACPATL3P6GIXZA).Debug/PlayDVD.exe : fatal error LNK1120: 1 个无法解析的外部命令生成日志保存在“file:/d:DXSDKSamplesC+DirectShowDVDPlayDVDDebugBuildLog.htm”PlayDVD - 2 个错误,个警告= 生成: 1 已成功, 1 已失败, 0 最新, 0 已跳过=无法解决编译Editing错误:xmltltst.cppd:DXSDKincludeuuids.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保
23、存为Unicode 格式以防止数据丢失.xmltltst.cpp(291) : error C2065: “k”: 未声明的标识符.xmltltst.cpp(304) : error C2065: “j”: 未声明的标识符生成日志保存在“file:/d:DXSDKSamplesC+DirectShowEditingXTLTestDebug_UnicodeBuildLog.htm”XTLTest - 2 个错误,个警告= 生成: 6 已成功, 1 已失败, 1 最新, 0 已跳过=更改:添加unsigned long k = 0 ; unsigned long j = 0 ;编译PlayWndA
24、SF错误:playwndasf.obj : error LNK2001: 无法解析的外部符号“unsigned int (_stdcall* ATL:g_pfnGetThreadACP)(void)” (?g_pfnGetThreadACPATL3P6GIXZA)urllaunch.obj : error LNK2001: 无法解析的外部符号“unsigned int (_stdcall* ATL:g_pfnGetThreadACP)(void)” (?g_pfnGetThreadACPATL3P6GIXZA).Debug_Unicode/PlayWndASF.exe : fatal erro
25、r LNK1120: 1 个无法解析的外部命令生成日志保存在“file:/d:DXSDKSamplesC+DirectShowPlayersPlayWndASFDebug_UnicodeBuildLog.htm”PlayWndASF - 3 个错误,个警告= 全部重新生成: 1 已成功, 1 已失败, 0 已跳过=更改:向数据库依赖项中添加atlsd.lib编译demos(D:DXSDKSamplesC+Demos)错误:StdAfx.cppd:program filesmicrosoft directx sdk (april 2007)included3d9types.h(1385) : w
26、arning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为Unicode 格式以防止数据丢失d:DXSDKSamplesC+commonincludeD3DFile.h(56) : error C2061: 语法错误: 标识符“LPDIRECTXFILEDATA”d:DXSDKSamplesC+commonincludeD3DFile.h(111) : error C2061: 语法错误: 标识符“LPDIRECTXFILEDATA”d:DXSDKSamplesC+commonincludeD3DFile.h(113) : error C2061: 语法错误
27、: 标识符“LPDIRECTXFILEDATA”生成日志保存在“file:/d:DXSDKSamplesC+DemosDonuts4DebugBuildLog.htm”Donuts4 - 3 个错误,个警告= 全部重新生成: 0 已成功, 1 已失败, 0 已跳过=更改:在dsdfile.h的顶部加入#include 就可以再次编译出现错误:.CommonSrcd3dfile.cpp(151) : error C2664: “D3DXLoadMeshFromXof”: 不能将参数1 从“LPDIRECTXFILEDATA”转换为“LPD3DXFILEDATA” 与指向的类型无关;转换要求rei
28、nterpret_cast、C 样式转换或函数样式转换错误出处:if( FAILED( hr = D3DXLoadMeshFromXof( pFileData, D3DXMESH_SYSTEMMEM, pd3dDevice, &pAdjacencyBuffer, &pMtrlBuffer, NULL, &m_dwNumMaterials, &m_pSysMemMesh ) ) )更改:if( FAILED( hr = D3DXLoadMeshFromXof(LPD3DXFILEDATA)pFileData, D3DXMESH_SYSTEMMEM, pd3dDevice, &pAdjacency
29、Buffer, &pMtrlBuffer, NULL, &m_dwNumMaterials, &m_pSysMemMesh ) ) )编译d3d 编译dxtex错误:.dxtexdoc.cpp(694) : error C2440: “初始化”: 无法从“const char *”转换为“TCHAR *” 转换丢失限定符.dxtexdoc.cpp(6 : error C2440: “初始化”: 无法从“const char *”转换为“TCHAR *” 转换丢失限定符dxtexview.cppWINVER not defined. Defaulting to 00502 (Windows Se
30、rver 2003)d:program filesmicrosoft directx sdk (april 2007)included3d9types.h(1385) : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为Unicode 格式以防止数据丢失MainFrm.cppWINVER not defined. Defaulting to 00502 (Windows Server 2003)d:program filesmicrosoft directx sdk (april 2007)included3d9types.h(1385) : w
31、arning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为Unicode 格式以防止数据丢失StdAfx.cppWINVER not defined. Defaulting to 00502 (Windows Server 2003)d:program filesmicrosoft directx sdk (april 2007)included3d9types.h(1385) : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为Unicode 格式以防止数据丢失正在生成代码正在创建浏览信息文件Copyrigh
32、t (C) Microsoft Corporation. All rights reserved.生成日志保存在“file:/d:DXSDKSamplesC+Direct3DDXTexDebugBuildLog.htm”dxtex - 2 个错误,个警告= 生成: 0 已成功, 1 已失败, 0 最新, 0 已跳过=错误地方: TCHAR* pszLeaf = strrchr(lpszPathName, );更改:TCHAR* pszLeaf = (TCHAR*)strrchr(lpszPathName, );编译后出现错误:正在链接CVTRES : fatal error CVT1100:
33、重复的资源。type:MANIFEST, name:1, language:00409LINK : fatal error LNK1123: 转换到COFF 期间失败: 文件无效或损坏更改:将在Debug模式下编译改为Release模式下编译。编译Water(water.cpp)错误:.Water.cpp(7 : error C2039: “Pass”: 不是“ID3DXEffect”的成员更改: 直接去掉这句/ m_pEffect-Pass(uPass)fur.cpp(424) : error C2039: “Pass”: 不是“ID3DXEffect”的成员 d:program files
34、microsoft directx sdk (april 2007)included3dx9effect.h(316) : 参见“ID3DXEffect”的声明.fur.cpp(550) : error C2039: “Pass”: 不是“ID3DXEffect”的成员 d:program filesmicrosoft directx sdk (april 2007)included3dx9effect.h(316) : 参见“ID3DXEffect”的声明.fur.cpp(567) : error C2039: “Pass”: 不是“ID3DXEffect”的成员 d:program fil
35、esmicrosoft directx sdk (april 2007)included3dx9effect.h(316) : 参见“ID3DXEffect”的声明.fur.cpp(585) : error C2039: “Pass”: 不是“ID3DXEffect”的成员 d:program filesmicrosoft directx sdk (april 2007)included3dx9effect.h(316) : 参见“ID3DXEffect”的声明dxutil.cpp更改:将Pass改成小写pass。在Water编译中也是错误的!编译VertexBlend(vertexblend.cpp)错误:vertexblend.cpp(312) : error C2065: “i”: 未声明的标识符.vertexblend.cpp(31
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 城市旅游:提升城市形象的新策略
- 偏爱的高级句子
- 健康饮食与智能科技的结合:新型餐饮模式探索
- 2025年度房地产营销推广年度合同模板
- 数字化转型对物流企业绩效影响
- 【全程复习方略】2020年高考政治一轮课时提升作业-必修1-第8课(广东专供)
- 黄冈2024年湖北黄冈市英山县事业单位招聘三支一扶服务期满人员笔试历年典型考点(频考版试卷)附带答案详解
- 信息系统项目管理
- 项目监理机构的组织结构
- 公司战略与风险管理
- 2024年考研(英语一)真题及参考答案
- 山东省济南市(2024年-2025年小学四年级语文)人教版期末考试((上下)学期)试卷及答案
- 单层钢结构工业厂房纵向定位轴线的定位
- 肿瘤科常见急重症
- 03SG715-1蒸压轻质加气混凝土板(NACL)构造详图
- 粉体工程第六章粉碎过程及设备
- 尽职调查工作底稿1_公司业务调查
- 洪水计算(推理公式法)
- GMW系列往复式给料机说明书
- 集装箱码头堆场项目可行性研究报告写作范文
- 医保药店一体化信息管理系统操作手册
评论
0/150
提交评论