d3d9编译错误及其解决方案

更新时间:2023-05-14 19:42:36 阅读: 评论:0

SDKSample编译错误及其解决方案
2008-08-09 21:08
常识
SDKSample的编译环境
如果使用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\BaClass
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\BaClass
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\BaClass\Debug
D:\DXSDK\Samples\C++\DirectShow\BaClass\Relea
D:\DXSDK\Samples\C++\DirectShow\BaClass
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了。
你可以参照微软的官方说明:/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编译BaClass
正在编译
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:\BaClass\Debug_Unicode\BuildLog.htm
BaClass - 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.LIB20032005中已经不存在了
解决方案:将库文件指向VC6中的库文件。
其他详细信息请见
SDKSample编译错误及其解决方案()
2008-08-09 21:09
SDKSample编译错误及其解决方案()
编译Capture
出现错误:LINK : fatal error LNK1104: 无法打开文件libci.lib
生成日志保存在file://d:\DXSDK\Samples\C++\DirectShow\Capture\CaptureTex\Debug\BuildLog.htm
CaptureTex - 1 个错误,个警告
错误原因:缺少数据库LIBCI.LIB20032005中已经不存在了
编译DMODEMO
错误:
..\..\..\Common\Src\dsutil.cpp(686) : error C2065: i: 未声明的标识符
错误的地方:
if( i != m_dwNumBuffers )
        return m_apDSBuffer[ i ];
    el
        return m_apDSBuffer[ rand() % m_dwNumBuffers ];
更改:在前面添加    unsigned char i;
编译DMOSAMPLE
d:\DXSDK\include\dmoimpl.h(622) : error C2065: dw: 未声明的标识符
        d:\DXSDK\include\dmoimpl.h(588): 编译类模板成员函数HRESULT IMediaObjectImpl<_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) : error C2228: .dwStatus”的左边必须有类/结构/联合
d:\DXSDK\include\dmoimpl.h(624) : error C2228: .fIncomplete”的左边必须有类/结构/联合
d:\DXSDK\include\dmoimpl.h(626) : error C2228: .fIncomplete”的左边必须有类/结构/联合
sample.cpp
d:\DXSDK\include\uuids.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为Unicode 格式以防止数据丢失
d:\DXSDK\include\dmoimpl.h(622) : error C2065: dw: 未声明的标识符
        d:\DXSDK\include\dmoimpl.h(588): 编译类模板成员函数HRESULT IMediaObjectImpl<_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) : error C2228: .dwStatus”的左边必须有类/结构/联合
d:\DXSDK\include\dmoimpl.h(624) : error C2228: .fIncomplete”的左边必须有类/结构/联合
d:\DXSDK\include\dmoimpl.h(626) : error C2228: .fIncomplete”的左边必须有类/结构/联合
state.cpp
StdAfx.cpp
util.cpp
正在生成代码
生成日志保存在file://d:\DXSDK\Samples\C++\DirectShow\DMO\DMOSample\Debug_Unicode\BuildLog.htm
dmosample - 8 个错误,个警告
========== 生成: 0 已成功, 1 已失败, 0 最新, 0 已跳过==========
更改:在出错的语句前加上DWORD_PTR dw;
编译PlayDVD
正在链接
PlayDVD.obj : error LNK2001: 无法解析的外部符号unsigned int (__stdcall* ATL::g_pfnGetThreadACP)(void) (?g_pfnGetThreadACP@ATL@@3P6GIXZA)
.\Debug_ : fatal error LNK1120: 1 个无法解析的外部命令
生成日志保存在file://d:\DXSDK\Samples\C++\DirectShow\DVD\PlayDVD\Debug_Unicode\BuildLog.htm
PlayDVD - 2 个错误,个警告
========== 全部重新生成: 0 已成功, 1 已失败, 0 已跳过==========
编译DVD
错误:
PlayDVD.obj : error LNK2001: 无法解析的外部符号unsigned int (__stdcall* ATL::g_pfnGetThreadACP)(void) (?g_pfnGetThreadACP@ATL@@3P6GIXZA)
.\ : fatal error LNK1120: 1 个无法解析的外部命令
生成日志保存在file://d:\DXSDK\Samples\C++\DirectShow\DVD\PlayDVD\Debug\BuildLog.htm
PlayDVD - 2 个错误,个警告
========== 生成: 1 已成功, 1 已失败, 0 最新, 0 已跳过==========
无法解决
编译Editing
错误:xmltltst.cpp
d:\DXSDK\include\uuids.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为Unicode 格式以防止数据丢失
.\xmltltst.cpp(291) : error C2065: k: 未声明的标识符
.\xmltltst.cpp(304) : error C2065: j: 未声明的标识符
生成日志保存在file://d:\DXSDK\Samples\C++\DirectShow\Editing\XTLTest\Debug_Unicode\BuildLog.htm
XTLTest - 2 个错误,个警告
========== 生成: 6 已成功, 1 已失败, 1 最新, 0 已跳过==========
更改:添加unsigned long k = 0 ;       
             unsigned long j = 0 ;
编译PlayWndASF
错误:
playwndasf.obj : error LNK2001: 无法解析的外部符号unsigned int (__stdcall* ATL::g_pfnGetThreadACP)(void) (?g_pfnGetThreadACP@ATL@@3P6GIXZA)
urllaunch.obj : error LNK2001: 无法解析的外部符号unsigned int (__stdcall* ATL::g_pfnGetThreadACP)(void) (?g_pfnGetThreadACP@ATL@@3P6GIXZA)
.\Debug_ : fatal error LNK1120: 1 个无法解析的外部命令
生成日志保存在file://d:\DXSDK\Samples\C++\DirectShow\Players\PlayWndASF\Debug_Unicode\BuildLog.htm
PlayWndASF - 3 个错误,个警告
========== 全部重新生成: 1 已成功, 1 已失败, 0 已跳过==========
更改:
向数据库依赖项中添加atlsd.lib
编译demosD:\DXSDK\Samples\C++\Demos
错误:
StdAfx.cpp
d:\program files\microsoft directx sdk (april 2007)\include\d3d9types.h(1385) : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为Unicode 格式以防止数据丢失
d:\DXSDK\Samples\C++\common\include\D3DFile.h(56) : error C2061: 语法错误: 标识符LPDIRECTXFILEDATA
d:\DXSDK\Samples\C++\common\include\D3DFile.h(111) : error C2061: 语法错误世事一场大梦: 标识符LPDIRECTXFILEDATA
d:\DXSDK\Samples\C++\common\include\D3DFile.h(113) : error C2061: 语法错误: 标识符LPDIRECTXFILEDATA
生成日志保存在file://d:\DXSDK\Samples\C++\Demos\Donuts4\Debug\BuildLog.htm
Donuts4 - 3 个错误,个警告
========== 全部重新生成: 0 已成功, 1 已失败, 0 已跳过==========
更改:dsdfile.h的顶部加入#include <dxfile.h>就可以
再次编译出现错误:
.\..\Common\Src\d3dfile.cpp(151) : error C2664: D3DXLoadMeshFromXof: 不能将参数1 LPDIRECTXFILEDATA”转换为LPD3DXFILEDATA
        与指向的类型无关;转换要求reinterpret_castC 样式转换或函数样式转换
错误出处:
if( FAILED( hr = D3DXLoadMeshFromXof( pFileData, D3DXMESH_SYSTEMMEM, pd3dDevice,
                                          &pAdjacencyBuffer, &pMtrlBuffer, NULL,
                                          &m_dwNumMaterials, &m_pSysMemMesh ) ) )
更改:
if( FAILED( hr = D3DXLoadMeshFromXof((LPD3DXFILEDATA)pFileData, D3DXMESH_SYSTEMMEM, pd3dDevice,
                                          &pAdjacencyBuffer, &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.cpp
WINVER not defined. Defaulting to 0×0502 (Windows Server 2003)
d:\program files\microsoft directx sdk (april 2007)\include\d3d9types.h(1385) : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为Unicode 格式以防止数据丢失
MainFrm.cpp
WINVER not defined. Defaulting to 0×0502 (Windows Server 2003)
d:\program files\microsoft directx sdk (april 2007)\include\d3d9types.h(1385) : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为Unicode 格式以防止数据丢失
StdAfx.cpp
WINVER not defined. Defaulting to 0×0502 (Windows Server 2003)
d:\program files\microsoft directx sdk (april 2007)\include\d3d9types.h(1385) : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为Unicode 格式以防止数据丢失
正在生成代码
正在创建浏览信息文件
Microsoft ?????????? Version 8.00.50727
Copyright (C) Microsoft Corporation. All rights rerved.
生成日志保存在file://d:\DXSDK\Samples\C++\Direct3D\DXTex\Debug\BuildLog.htm
dxtex - 2 个错误,个警告
========== 生成: 0 已成功, 1 已失败, 0 最新, 0 已跳过==========
错误地方:  TCHAR* pszLeaf = strrchr(lpszPathName, ‘\\’);
更改TCHAR* pszLeaf = (TCHAR*)strrchr(lpszPathName, ‘\\’);
编译后出现错误:
正在链接
CVTRES : fatal error CVT1100: 重复的资源。type:MANIFEST, name:1, language:0×0409
LINK : fatal error LNK1123: 转换到COFF 期间失败: 文件无效或损坏
更改:
将在Debug模式下编译改为Relea模式下编译。
编译Waterwater.cpp)错误:
.\Water.cpp(7 : error C2039: Pass: 不是ID3DXEffect”的成员
更改: 直接去掉这句// m_pEffect->Pass(uPass)
\fur.cpp(424) : error C2039: Pass: 不是ID3DXEffect”的成员
        d:\program files\microsoft directx sdk (april 2007)\include\d3dx9effect.h(316) : 参见ID3DXEffect”的声明
加强侧伸展式
.\高考必背64篇fur.cpp(550) : error C2039: Pass: 不是ID3DXEffect”的成员
        d:\program files\microsoft directx sdk (april 2007)\include\d3dx9effect.h(316) : 参见ID3DXEffect”的声明
.\fur.cpp(567) : error C2039: Pass: 不是ID3DXEffect”的成员
        d:\program files\microsoft directx sdk (april 2007)\include\d3dx9effect.h(316) : 参见ID3DXEffect”的声明
.\fur.cpp(585) : error C2039: 脸上的痣Pass: 不是ID3DXEffect”的成员
        d:\program files\microsoft directx sdk (april 2007)\include\d3dx9effect.h(316) : 参见ID3DXEffect”的声明
dxutil.cpp
更改:Pass改成小写pass。在Water编译中也是错误的!!!
编译VertexBlend(vertexblend.cpp)
错误:\vertexblend.cpp(312) : error C2065: i: 未声明的标识符
.\vertexblend.cpp(315) : error C2228: .v”的左边必须有类/结构/联合
.\vertexblend.cpp(315) : error C2228: .x”的左边必须有类/结构/联合
.\vertexblend.cpp(316) : error C2228: .blend”的左边必须有类/结构/联合
改正for( INT i=0; i<dwNumVertices; i++ )
        {
            // Set the blend factors for the vertices
            FLOAT a = ( pVertices[i].v.x - fMinX ) / ( fMaxX - fMinX );
            pVertices[i].blend = 1.0f-sinf(a*D3DX_PI*1.0f);
        }///INT

本文发布于:2023-05-14 19:42:36,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/631340.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:错误   文件   编译   解析   无法   不能   保存   生成
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图