`
isiqi
  • 浏览: 16493814 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

编译BaseClasses 编译错误

阅读更多
编译错误

编译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;

编译Capture

出现错误:LINK : fatal error LNK1104: 无法打开文件“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) : error C2065: “i”: 未声明的标识符

错误的地方:

if( i != m_dwNumBuffers )

return m_apDSBuffer[ i ];

else

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_Unicode/PlayDVD.exe : 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)

.\Debug/PlayDVD.exe : 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_Unicode/PlayWndASF.exe : fatal error LNK1120: 1 个无法解析的外部命令

生成日志保存在“file://d:\DXSDK\Samples\C++\DirectShow\Players\PlayWndASF\Debug_Unicode\BuildLog.htm”

PlayWndASF - 3 个错误,个警告

========== 全部重新生成: 1 已成功, 1 已失败, 0 已跳过==========

更改:

向数据库中添加atlsd.lib数据库文件

编译demos(D:\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_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,

&pAdjacencyBuffer, &pMtrlBuffer, NULL,

&m_dwNumMaterials, &m_pSysMemMesh ) ) )

编译d3d

编译dxtex

错误:

.\dxtexdoc.cpp(694) : error C2440: “初始化”: 无法从“const char *”转换为“TCHAR *”

转换丢失限定符

.\dxtexdoc.cpp(698) : error C2440: “初始化”: 无法从“const char *”转换为“TCHAR *”

转换丢失限定符

dxtexview.cpp

WINVER not defined. Defaulting to 0x0502 (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 0x0502 (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 0x0502 (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 reserved.

生成日志保存在“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:0x0409

LINK : fatal error LNK1123: 转换到COFF 期间失败: 文件无效或损坏

更改:

将在Debug模式下编译改为Release模式下编译。

编译Water(water.cpp)错误:

.\Water.cpp(748) : 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”的声明

.\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

编译dinput( diconfig)

编译错误:

d:\dxsdk\samples\c++\directinput\diconfig\collections.h(640) : error C2143: 语法错误: 缺少“;”(在“CList<TYPE,ARG_TYPE>::NewNode”的前面)

d:\dxsdk\samples\c++\directinput\diconfig\collections.h(640) : error C4430: 缺少类型说明符- 假定为int。注意: C++ 不支持默认int

d:\dxsdk\samples\c++\directinput\diconfig\collections.h(640) : fatal error C1903: 无法从以前的错误中恢复;正在停止编译

发生错误的地方:

CList<TYPE, ARG_TYPE>::CNode/////CList<TYPE, ARG_TYPE>::CNode*

CList<TYPE, ARG_TYPE>::NewNode(CList::CNode *pPrev, CList::CNode * pNext)////

更改:????????????????????????

编译dplay(voiceserver)

正在链接...

LINK : fatal error LNK1104: 无法打开文件“dplay.lib”

生成日志保存在“file://d:\DXSDK\Samples\C++\DirectPlay\VoiceClientServer\VoiceServer\Win32_Debug_Unicode\BuildLog.htm”

VoiceServer - 1 个错误,个警告

========== 生成: 0 已成功, 1 已失败, 0 最新, 0 已跳过==========

错误分析:dplay.lib没有这个库文件.在vc6.0中有.

改正:下载库文件dplay.lib,添加到D:\Program Files\Microsoft Visual Studio 8\VC\lib目录下.编译方式为Release.

编译dshow(inftee)

错误:正在编译资源清单...

正在链接...

LINK : fatal error LNK1117: 选项“debug:mapped,full”中的语法错误

生成日志保存在“file://d:\DXSDK\Samples\C++\DirectShow\Filters\INFTee\Debug_Unicode\BuildLog.htm”

inftee - 1 个错误,个警告

========== 全部重新生成: 1 已成功, 1 已失败, 0 已跳过==========

LINK : fatal error LNK1117: 选项“debug:mapped,full”中的语法错误

解决方案:

LNK1117是"option"错误,将相关的选项去掉就可以了!

即在连接器属性中的命令行中的"附加选项去掉错误的部分".

分享到:
评论

相关推荐

    BaseClasses.7z

    【压缩包子文件的文件名称列表】中的"BaseClasses.zip"可能是一个错误,因为原始的压缩文件是"BaseClasses.7z"。如果"BaseClasses.zip"是内部的一个文件,那么它可能包含了编译好的库文件、头文件、或者源代码,供...

    DirectX SDK 2005中分理出的BaseClasses

    6. 编译与构建:在使用DirectShow BaseClasses前,需要确保已成功编译BaseClasses库。这通常涉及设置合适的环境变量,链接到相关的库文件,并可能需要调整编译选项以适应你的项目需求。 7. 接口继承和实现:...

    Directshow开发环境配置vs2008

    在编译BASECLASSES基类之前,需要将BASECLASSES.sln文件打开。BASECLASSES.sln文件位于DirectShow SDK的Samples目录下。打开文件后,VS2008将提示你进行工程转换,转换完成后开始编译。 在编译过程中,可能会出现...

    dirctshow使用说明非常有效

    总的来说,配置VS2008下的DirectShow环境涉及编译BaseClasses、设置项目属性、添加库文件路径以及修改源代码等多个环节。通过以上步骤,你将能够顺利地在VS2008中使用DirectShow进行流媒体播放器的开发。在实际操作...

    DirectShow使用 VS2005配置详细说明(附图)

    2. **编译 BaseClasses 示例**: - 打开路径 `C:\DXSDK\Samples\C++\DirectShow\BaseClasses` 中的项目文件。 - 在 VS2005 中打开后,可能会提示进行项目转换,按照提示操作。 - 编译过程中可能遇到的几个问题及...

    vs2010+directshow多摄像头编程

    对报错的数据类型单独取出来进行类型定义,即可解决编译错误,通过编译。 2、包含directshow文件和库 在项目中包含include:C:\DXSDK\Include C:\DXSDK\Samples\C++\DirectShow\BaseClasses 在项目中包含库lib:C:\...

    VS2005 编译 Media Player Classic

    - **DirectShow Base Classes路径**:`X:\DXSDK\Samples\C++\DirectShow\BaseClasses` - **步骤**:工具 =&gt; 选项 =&gt; 项目和解决方案 =&gt; VC++目录 =&gt; 包含文件 **3. 解决编译错误** 在编译DirectShow的Base ...

    VS2008环境搭建

    - 打开VS2008并加载位于`C:\Program Files\Microsoft SDKs\Windows\v6.1\Samples\Multimedia\DirectShow\BaseClasses`目录下的`baseclasses.sln`解决方案文件。 2. **转换解决方案**: - 如果提示是否转换解决...

    vc++6.0下DirectShow环境配置

    - 编译BaseClasses时要注意输出文件名的一致性,以便后续使用。 - 解决编译错误时,务必仔细检查代码,避免引入新的错误。 - 如果在编译过程中遇到其他未提及的错误,可以查阅DirectX SDK文档或搜索相关解决方案。 ...

    visual studio2005中如何首次配置directshow开发环境

    完成上述步骤后,你应该能够成功编译baseclasses工程,标志着你的DirectShow开发环境已经初步配置完成。接下来,你可以开始创建自己的DirectShow应用程序,使用提供的类和接口实现视频和音频处理功能。 在实际开发...

    vs2005、vs2008配置DirectShow详解

    - 当编译BaseClasses项目时,注意保留原始文件的备份,以防意外覆盖。 - 如果使用的是Windows Platform SDK而不是DirectX SDK,确保安装的版本包含了DirectShow组件。 - 在进行任何更改之前,最好备份当前的工作环境...

    java命令行编译说明

    ### Java命令行编译详解 在深入探讨Java命令行编译的具体...虽然这可能比使用IDE时更显繁琐,但它帮助开发者深入理解Java编译和运行的底层机制,从而在遇到编译错误或运行时问题时,能够更加准确地定位和解决问题。

    低版本VS项目在VS2019无法正常编译的问题

    主要介绍了低版本VS项目在VS2019无法正常编译的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    directshow的配置与实例.doc

    1. **编译BaseClasses**: - 打开`baseclasses.dsw`工程文件。 - 通过`Build -&gt; Set Active Configuration`选择不同的编译配置(Debug、Release等)。 - 编译后会在工程目录下生成四个库文件:`strmbasd.lib`、`...

    DirectX+VS2010环境搭建.docx

    6. **生成库文件**:在成功解决编译问题后,通过在不同配置(Debug、Release,以及Unicode与非Unicode)下编译BaseClasses项目,你会得到四个不同的库文件(strmbasd.lib、strmbase.lib等),这些库文件将在不同的...

    WebRTC编译

    注意检查是否有编译错误或警告,根据错误提示进行相应的代码调整或库文件更新。 #### 七、结语 通过上述步骤,我们成功搭建了WebRTC Peerconnection的编译环境,并获取了其源码。接下来可以进行更深入的功能开发与...

    VS_2005下DirectShow开发环境的配置

    **步骤一:** 打开DirectX SDK安装目录下的`SamplesC++DirectShowBaseClasses`文件夹,找到`baseclasses.sln`文件并双击打开。这个解决方案文件包含了构建DirectShow基础类库所需的所有项目。 **步骤二:** 当首次...

Global site tag (gtag.js) - Google Analytics