close
轉自IT魔鬼訓練營
作者 網研所 2007年08月15日
編譯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 就可以


再次編譯出現錯誤:

.\..\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(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 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:0×0409

LINK : 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\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









arrow
arrow
    全站熱搜

    tabrislin 發表在 痞客邦 留言(0) 人氣()