directShow編譯時錯誤匯總_第1頁
directShow編譯時錯誤匯總_第2頁
directShow編譯時錯誤匯總_第3頁
directShow編譯時錯誤匯總_第4頁
directShow編譯時錯誤匯總_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、SDK中Sample編譯錯誤及其解決方案SDK中Sample的編譯環(huán)境如果使用Microsoft Visual Studio 2005,在工具-選項-項目和解決方案-vc+目錄中進行如下設置??蓤?zhí)行文件: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時出現(xiàn)的錯誤,進行解析。錯誤例子: CVTRES

5、 : fatal error CVT1100: 重復的資源。type:MANIFEST, name:1, language:00409LINK : fatal error LNK1123: 轉(zhuǎn)換到COFF 期間失敗: 文件無效或損壞 解決方案:我的編譯環(huán)境是Microsoft Visual Studio 2005將所有工程的屬性(工程全選-右擊-屬性)-配置屬性-清單工具-輸入輸出-嵌入清單,選擇“否”,然后編譯,就OK了。2針對出現(xiàn)未聲明標識符的錯誤進行解析。錯誤例子:for( m=0; mdwNumModes; m+ ) if( pDevice-modesm.Width=640 & pDe

6、vice-modesm.Height=480 ) error C2065: “m”: 未聲明的標識符像這種錯誤,你可以查找它的定義,在將它的定義復制到錯誤行的前面。如上述例子中,你可以在for的上一行添加long m;。就可以了。3針對出現(xiàn)無法初始化問題的錯誤進行解析。錯誤例子:TCHAR* strLastSlash = _tcsrchr( str, TEXT() )錯誤:error C2440: “初始化”: 無法從“const wchar_t *”轉(zhuǎn)換為“TCHAR *”像這樣的錯誤,你可以在=的右邊進行強制轉(zhuǎn)換。如下:TCHAR* strLastSlash = (TCHAR*)_tcsr

7、chr( str, TEXT() );4針對警告被視為錯誤的問題進行解析。錯誤例子:c:dxsdksamplesc+miscdxdiagreportdxdiaginfo.cpp(322) : error C2220: 警告被視為錯誤- 沒有生成“object”文件。這種錯誤的原因是:原因是該文件的代碼頁為英文,而我們系統(tǒng)中的代碼頁為中文。解決方案:啟動Microsoft Visual Studio 2005,文件-打開-選擇c:dxsdksamplesc+miscdxdiagreportdxdiaginfo.cpp,然后保存。從新打開程序文件運行,此錯誤不再出現(xiàn)。如果上述不能去掉錯誤,還可以點

8、擊項目,右擊選擇屬性-配置屬性-c/c+-常規(guī),將“警告視為錯誤”的選項改為“否”。就可以!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 移到循環(huán)體外 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 格式以防止數(shù)據(jù)丟失生成日志保存在“file:/d:BaseClassesDebug_UnicodeBuildLog.htm”BaseClasses - 5 個錯誤,個警告出現(xiàn)錯誤的地方: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出現(xiàn)錯誤:LINK : fatal error LNK1104: 無法打開文件“l(fā)ibci.lib”生成日志保存在“file:/d:DXSDKSamplesC+DirectShowCaptureCaptureTexDebugBuildLog.ht

14、m”CaptureTex - 1 個錯誤,個警告錯誤原因:缺少數(shù)據(jù)庫LIBCI.LIB在2003和2005中已經(jīng)不存在了解決方案:將庫文件指向VC6中的庫文件。編譯Capture出現(xiàn)錯誤:LINK : fatal error LNK1104: 無法打開文件“l(fā)ibci.lib”生成日志保存在“file:/d:DXSDKSamplesC+DirectShowCaptureCaptureTexDebugBuildLog.htm”CaptureTex - 1 個錯誤,個警告錯誤原因:缺少數(shù)據(jù)庫LIBCI.LIB在2003和2005中已經(jīng)不存在了編譯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): 編譯類模板成員函數(shù)“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”的左邊必須有類/結(jié)構(gòu)/聯(lián)合d:DXSDKincludedmoimpl.h(624) : error C2228: “.fIncomplete”的左邊必須有類/結(jié)構(gòu)/聯(lián)合d:DXSDKincludedmoimpl.h(626) : error C2228: “.fIncomplete”的左邊必須有類/結(jié)構(gòu)/聯(lián)合sample.cppd:DXSDKincludeuuids.h : warning C4819: 該文件包含不能在當前代碼頁(936)中表示的字符。請將該文件保存為Unicode 格式以防止數(shù)據(jù)丟失d:DXSDKincludedmoim

18、pl.h(622) : error C2065: “dw”: 未聲明的標識符 d:DXSDKincludedmoimpl.h(588): 編譯類模板成員函數(shù)“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”的左邊必須有類/結(jié)構(gòu)/聯(lián)合d:DXSDKincludedmoimpl.h(624) : error C2228: “.fIncomplete”的左邊必須有類/結(jié)構(gòu)/聯(lián)合d:DXSDKincludedmoimpl.h(626) : error C2228: “.fIncomplete”的左邊必須有類/結(jié)構(gòu)/聯(lián)合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 格式以防止數(shù)據(jù)丟失.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 已跳過=更改:向數(shù)據(jù)庫依賴項中添加atlsd.lib編譯demos(D:DXSDKSamplesC+Demos)錯誤:StdAfx.cppd:program filesmicrosoft directx sdk (april 2007)included3d9types.h(1385) : w

26、arning C4819: 該文件包含不能在當前代碼頁(936)中表示的字符。請將該文件保存為Unicode 格式以防止數(shù)據(jù)丟失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 就可以再次編譯出現(xiàn)錯誤:.CommonSrcd3dfile.cpp(151) : error C2664: “D3DXLoadMeshFromXof”: 不能將參數(shù)1 從“LPDIRECTXFILEDATA”轉(zhuǎn)換為“LPD3DXFILEDATA” 與指向的類型無關(guān);轉(zhuǎn)換要求rei

28、nterpret_cast、C 樣式轉(zhuǎn)換或函數(shù)樣式轉(zhuǎn)換錯誤出處: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 *”轉(zhuǎn)換為“TCHAR *” 轉(zhuǎn)換丟失限定符.dxtexdoc.cpp(6 : error C2440: “初始化”: 無法從“const char *”轉(zhuǎn)換為“TCHAR *” 轉(zhuǎn)換丟失限定符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 格式以防止數(shù)據(jù)丟失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 格式以防止數(shù)據(jù)丟失StdAfx.cppWINVER not defined. Defaulting to 00502 (Windows Server 2003)d:program filesmicrosoft directx sdk (april 2007)included3d9types.h(1385) : warning C4819: 該文件包含不能在當前代碼頁(936)中表示的字符。請將該文件保存為Unicode 格式以防止數(shù)據(jù)丟失正在生成代碼正在創(chuàng)建瀏覽信息文件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, );編譯后出現(xiàn)錯誤:正在鏈接CVTRES : fatal error CVT1100:

33、重復的資源。type:MANIFEST, name:1, language:00409LINK : fatal error LNK1123: 轉(zhuǎn)換到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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論