在VC工程里添加附加依賴項可以解決,
1>------ 已啟動生成: 項目: WinTest, 配置: Debug Win32 ------
1>生成啟動時間為 2011/12/21 10:47:42。
1>InitializeBuildStatus:
1> 正在對“Debug\WinTest.unsuccessfulbuild”執行 Touch 任務。
1>ClCompile:
1> 所有輸出均為最新。
1>ManifestResourceCompile:
1> 所有輸出均為最新。
1>PlayVideo.obj : error LNK2001: 無法解析的外部符號
_TID_D3DRMFrameTransformMatrix
1>PlayVideo.obj : error LNK2001: 無法解析的外部符號
_TID_D3DRMFrame
1>PlayVideo.obj : error LNK2001: 無法解析的外部符號
_TID_D3DRMMesh
1>PlayVideo.obj : error LNK2001: 無法解析的外部符號
_TID_D3DRMAnimation
1>PlayVideo.obj : error LNK2001: 無法解析的外部符號
_TID_D3DRMAnimationSet
1>PlayVideo.obj : error LNK2001: 無法解析的外部符號
_TID_D3DRMAnimationKey
1>E:\Visual Studio 2010\Projects\WinTest\Debug\WinTest.exe : fatal error LNK1120: 6 個無法解析的
外部命令
1>
1>生成失敗。
1>
1>已用時間 00:00:01.04
========== 生成: 成功 0 個,失敗 1 個,最新 0 個,跳過 0 個 ==========
在VC工程里添加附加依賴項dxguid.lib並在代碼里添加#include<rmxfguid.h>可以解決
1>------ 已啟動生成: 項目: WinTest, 配置: Debug Win32 ------
1>生成啟動時間為 2011/12/21 11:12:49。
1>InitializeBuildStatus:
1> 正在創建“Debug\WinTest.unsuccessfulbuild”,因為已指定“AlwaysCreate”。
1>ClCompile:
1> 所有輸出均為最新。
1>ManifestResourceCompile:
1> 所有輸出均為最新。
1>Link:
1> 所有輸出均為最新。
1>PlayVideo.obj : error LNK2019: 無法解析的外部符號
__imp__CoUninitialize@0,該符號在函數
_WinMain@16 中被引用
1>PlayVideo.obj : error LNK2019: 無法解析的外部符號
__imp__CoInitialize@4,該符號在函數
_WinMain@16 中被引用
1>E:\Visual Studio 2010\Projects\WinTest\Debug\WinTest.exe : fatal error LNK1120: 2 個無法解析的
外部命令
1>
1>生成失敗。
1>
1>已用時間 00:00:00.38
========== 生成: 成功 0 個,失敗 1 個,最新 0 個,跳過 0 個 ==========
加上這個:ole32.lib
__imp__InitCommonControlsEx@4 __imp__EndDialog
1>------ 已啟動生成: 項目: Guest Room Management App, 配置: Debug Win32 ------
1>生成啟動時間為 2011/11/27 10:51:46。
1>InitializeBuildStatus:
1> 正在創建“Debug\Guest Room Management App.unsuccessfulbuild”,因為已指定“AlwaysCreate”。
1>ClCompile:
1> 所有輸出均為最新。
1>ResourceCompile:
1> 所有輸出均為最新。
1>ManifestResourceCompile:
1> 所有輸出均為最新。
1>Link:
1> 所有輸出均為最新。
1>GRMA.obj : error LNK2019: 無法解析的外部符號 __imp__EndDialog@8,該符號在函數 "int __stdcall DlgProc(struct HWND__ *,unsigned int,unsigned int,long)" (?DlgProc@@YGHPAUHWND__@@IIJ@Z) 中被引用
1>GRMA.obj : error LNK2019: 無法解析的外部符號 __imp__SetFocus@4,該符號在函數 "int __stdcall DlgProc(struct HWND__ *,unsigned int,unsigned int,long)" (?DlgProc@@YGHPAUHWND__@@IIJ@Z) 中被引用
1>GRMA.obj : error LNK2019: 無法解析的外部符號 __imp__SetWindowPos@28,該符號在函數 "int __stdcall DlgProc(struct HWND__ *,unsigned int,unsigned int,long)" (?DlgProc@@YGHPAUHWND__@@IIJ@Z) 中被引用
1>GRMA.obj : error LNK2019: 無法解析的外部符號 __imp__GetSystemMetrics@4,該符號在函數 "int __stdcall DlgProc(struct HWND__ *,unsigned int,unsigned int,long)" (?DlgProc@@YGHPAUHWND__@@IIJ@Z) 中被引用
1>GRMA.obj : error LNK2019: 無法解析的外部符號 __imp__GetWindowRect@8,該符號在函數 "int __stdcall DlgProc(struct HWND__ *,unsigned int,unsigned int,long)" (?DlgProc@@YGHPAUHWND__@@IIJ@Z) 中被引用
1>GRMA.obj : error LNK2019: 無法解析的外部符號 __imp__DefWindowProcA@16,該符號在函數 "long __stdcall WndProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WndProc@@YGJPAUHWND__@@IIJ@Z) 中被引用
1>GRMA.obj : error LNK2019: 無法解析的外部符號 __imp__PostQuitMessage@4,該符號在函數 "long __stdcall WndProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WndProc@@YGJPAUHWND__@@IIJ@Z) 中被引用
1>GRMA.obj : error LNK2019: 無法解析的外部符號 __imp__DestroyWindow@4,該符號在函數 "long __stdcall WndProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WndProc@@YGJPAUHWND__@@IIJ@Z) 中被引用
1>GRMA.obj : error LNK2019: 無法解析的外部符號 __imp__EndPaint@8,該符號在函數 "long __stdcall WndProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WndProc@@YGJPAUHWND__@@IIJ@Z) 中被引用
1>GRMA.obj : error LNK2019: 無法解析的外部符號 __imp__BeginPaint@8,該符號在函數 "long __stdcall WndProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WndProc@@YGJPAUHWND__@@IIJ@Z) 中被引用
1>GRMA.obj : error LNK2019: 無法解析的外部符號 __imp__CreateWindowExA@48,該符號在函數 "long __stdcall WndProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WndProc@@YGJPAUHWND__@@IIJ@Z) 中被引用
1>GRMA.obj : error LNK2019: 無法解析的外部符號 __imp__GetWindowLongA@8,該符號在函數 "long __stdcall WndProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WndProc@@YGJPAUHWND__@@IIJ@Z) 中被引用
1>GRMA.obj : error LNK2019: 無法解析的外部符號 __imp__GetClientRect@8,該符號在函數 "long __stdcall WndProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WndProc@@YGJPAUHWND__@@IIJ@Z) 中被引用
1>GRMA.obj : error LNK2019: 無法解析的外部符號 __imp__InitCommonControlsEx@4,該符號在函數 "long __stdcall WndProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WndProc@@YGJPAUHWND__@@IIJ@Z) 中被引用
1>GRMA.obj : error LNK2019: 無法解析的外部符號 __imp__DispatchMessageA@4,該符號在函數 _WinMain@16 中被引用
1>GRMA.obj : error LNK2019: 無法解析的外部符號 __imp__TranslateMessage@4,該符號在函數 _WinMain@16 中被引用
1>GRMA.obj : error LNK2019: 無法解析的外部符號 __imp__TranslateAcceleratorA@12,該符號在函數 _WinMain@16 中被引用
1>GRMA.obj : error LNK2019: 無法解析的外部符號 __imp__GetMessageA@16,該符號在函數 _WinMain@16 中被引用
1>GRMA.obj : error LNK2019: 無法解析的外部符號 __imp__LoadAcceleratorsA@8,該符號在函數 _WinMain@16 中被引用
1>GRMA.obj : error LNK2019: 無法解析的外部符號 __imp__UpdateWindow@4,該符號在函數 _WinMain@16 中被引用
1>GRMA.obj : error LNK2019: 無法解析的外部符號 __imp__ShowWindow@8,該符號在函數 _WinMain@16 中被引用
1>GRMA.obj : error LNK2019: 無法解析的外部符號 __imp__MessageBoxA@16,該符號在函數 _WinMain@16 中被引用
1>GRMA.obj : error LNK2019: 無法解析的外部符號 __imp__RegisterClassA@4,該符號在函數 _WinMain@16 中被引用
1>GRMA.obj : error LNK2019: 無法解析的外部符號 __imp__GetStockObject@4,該符號在函數 _WinMain@16 中被引用
1>GRMA.obj : error LNK2019: 無法解析的外部符號 __imp__LoadCursorA@8,該符號在函數 _WinMain@16 中被引用
1>GRMA.obj : error LNK2019: 無法解析的外部符號 __imp__LoadIconA@8,該符號在函數 _WinMain@16 中被引用
1>E:\Visual Studio 2010\Projects\Guest Room Management App\Debug\Guest Room Management App.exe : fatal error LNK1120: 26 個無法解析的外部命令
1>
1>生成失敗。
1>
1>已用時間 00:00:01.09
========== 生成: 成功 0 個,失敗 1 個,最新 0 個,跳過 0 個 ==========
Gdi32.lib
user32.lib
無法解析的外部符號 __imp__InitCommonControlsEx@4
comctl32.lib
version.lib
1>DXUT.obj : error LNK2019: 無法解析的外部符號
__imp__CommandLineToArgvW@8,該符號在函數 "void __cdecl DXUTParseCommandLine(void)" (?DXUTParseCommandLine@@YAXXZ) 中被引用
1>DXUT.obj : error LNK2019: 無法解析的外部符號
__imp__ExtractIconW@12,該符號在函數 "long __cdecl DXUTCreateWindow(wchar_t const *,struct HINSTANCE__ *,struct HICON__ *,struct HMENU__ *,int,int)" (?DXUTCreateWindow@@YAJPB_WPAUHINSTANCE__@@PAUHICON__@@PAUHMENU__@@HH@Z) 中被引用
1>DXUTmisc.obj : error LNK2019: 無法解析的外部符號 _
_imp__ShellExecuteW@24,該符號在函數 "bool __cdecl DXUTReLaunchMediaCenter(void)" (?DXUTReLaunchMediaCenter@@YA_NXZ) 中被引用
在[附加依賴項]中勾選[從父級或項目默認設置繼承]選項
在[附加依賴項]中勾選[從父級或項目默認設置繼承]選項
1>CDirectInput.obj : error LNK2001: 無法解析的外部符號
_c_dfDIMouse
1>CDirectInput.obj : error LNK2001: 無法解析的外部符號
_c_dfDIKeyboard
1>CDirectInput.obj : error LNK2019: 無法解析的外部符號
_DirectInput8Create@20,該符號在函數
"public: bool __thiscall CDirectInputSystem::Initialize(struct HWND__ *,struct HINSTANCE__
*,bool)" (?Initialize@CDirectInputSystem@@QAE_NPAUHWND__@@PAUHINSTANCE__@@_N@Z) 中被引用
1>CDirectInput.obj : error LNK2001: 無法解析的外部符號
_c_dfDIJoystick2
1>E:\Visual Studio 2010\Projects\WinTest\Debug\WinTest.exe : fatal error LNK1120: 4 個無法解析的
外部命令
1>
1>生成失敗。
1>
1>已用時間 00:00:03.52
========== 生成: 成功 0 個,失敗 1 個,最新 0 個,跳過 0 個 ==========
dinput8.lib
1>terrain.obj : error LNK2019: 無法解析的外部符號 "float __cdecl d3d::Lerp(float,float,float)" (?Lerp@d3d@@YAMMMM@Z),該符號在函數 "public: float __thiscall Terrain::getHeight(float,float)" (?getHeight@Terrain@@QAEMMM@Z) 中被引用
1>terrainDriver.obj : error LNK2019: 無法解析的外部符號 "bool __cdecl d3d::InitD3D(struct HINSTANCE__ *,int,int,bool,enum _D3DDEVTYPE,struct IDirect3DDevice9 * *)" (?InitD3D@d3d@@YA_NPAUHINSTANCE__@@HH_NW4_D3DDEVTYPE@@PAPAUIDirect3DDevice9@@@Z),該符號在函數_WinMain@16 中被引用
解決方案:將Lerp定義復制到.h文件中,重新運行一下,若還是出錯,再拷貝回來。
由於該加的.lib文件都加上了,所以還出現這種錯誤就是編譯器的原因,具體不甚了解.
一般無法解析的外部符號都是因為.lib文件沒有包含或者對應函數沒有實現定義,如果還是出錯的話,那就重新編寫一遍,因為可能是拷貝過來的文件,編譯器有些問題。
1>terrainDriver.obj : error LNK2019: 無法解析的外部符號 "bool __cdecl d3d::InitD3D(struct HINSTANCE__ *,int,int,bool,enum _D3DDEVTYPE,struct IDirect3DDevice9 * *)" (?InitD3D@d3d@@YA_NPAUHINSTANCE__@@HH_NW4_D3DDEVTYPE@@PAPAUIDirect3DDevice9@@@Z),該符號在函數_WinMain@16 中被引用
解決方案:將Lerp定義復制到.h文件中,重新運行一下,若還是出錯,再拷貝回來。
由於該加的.lib文件都加上了,所以還出現這種錯誤就是編譯器的原因,具體不甚了解.
一般無法解析的外部符號都是因為.lib文件沒有包含或者對應函數沒有實現定義,如果還是出錯的話,那就重新編寫一遍,因為可能是拷貝過來的文件,編譯器有些問題。
1>dxut.obj : error LNK2019: 無法解析的外部符號 __imp__ExtractIconW@12,該符號在函數 "long __cdecl DXUTCreateWindow(wchar_t const *,struct HINSTANCE__ *,struct HICON__ *,struct HMENU__ *,int,int)" (?DXUTCreateWindow@@YAJPB_WPAUHINSTANCE__@@PAUHICON__@@PAUHMENU__@@HH@Z) 中被引用
solution:
add shell32.lib
solution:
add shell32.lib
無法打開文件"dxerr9.lib"
問題描述:使用Visual Studio 2010,DX10 SDK打開舊版本(DX9)的項目,編譯運行時候提示為fatal error LNK1104: 無法打開文件“dxerr9.lib”
================================================
問題原因:DX10中將dxerr9.lib變成了dxerr.lib(顯然DX8中這個文件叫dxerr8.lib)
解決方法:
在屬性管理器中,右擊解決方案->屬性->連接器->輸入->附加依賴項,在里面找到dxerr9.lib,改成dxerr.lib
問題解決。
1>d3dUtility.obj : error LNK2005: "long __stdcall d3d::WndProc(struct HWND__ *,unsigned int,unsigned int,long)" (
?WndProc@d3d@@YGJPAUHWND__@@IIJ@Z
) 已經在 cfont.obj 中定義
1>cfont.obj : error LNK2019: 無法解析的外部符號 "bool __cdecl d3d::InitD3D(struct HINSTANCE__ *,int,int,bool,enum _D3DDEVTYPE,struct IDirect3DDevice9 * *)" ( ?InitD3D@d3d@@YA_NPAUHINSTANCE__@@HH_NW4_D3DDEVTYPE@@PAPAUIDirect3DDevice9@@@Z ),該符號在函數 _WinMain@16 中被引用
1>dxutil.obj : error LNK2019: 無法解析的外部符號 __imp__RegCloseKey@4 ,該符號在函數 "long __cdecl DXUtil_GetDXSDKMediaPathCch(wchar_t *,int)" ( ?DXUtil_GetDXSDKMediaPathCch@@YAJPA_WH@Z ) 中被引用
1>dxutil.obj : error LNK2019: 無法解析的外部符號 __imp__RegQueryValueExW@24 ,該符號在函數 "long __cdecl DXUtil_GetDXSDKMediaPathCch(wchar_t *,int)" ( ?DXUtil_GetDXSDKMediaPathCch@@YAJPA_WH@Z ) 中被引用
1>dxutil.obj : error LNK2019: 無法解析的外部符號 __imp__RegOpenKeyExW@20 ,該符號在函數 "long __cdecl DXUtil_GetDXSDKMediaPathCch(wchar_t *,int)" ( ?DXUtil_GetDXSDKMediaPathCch@@YAJPA_WH@Z ) 中被引用
1>dxutil.obj : error LNK2019: 無法解析的外部符號 __imp__RegSetValueExW@24 ,該符號在函數 "long __cdecl DXUtil_WriteStringRegKey(struct HKEY__ *,wchar_t *,wchar_t *)" ( ?DXUtil_WriteStringRegKey@@YAJPAUHKEY__@@PA_W1@Z ) 中被引用
1>E:\Visual Studio 2010\Projects\WinTest\Debug\WinTest.exe : fatal error LNK1120: 5 個無法解析的外部命令
1>
1>生成失敗。
1>
1>已用時間 00:00:01.19
========== 生成: 成功 0 個,失敗 1 個,最新 0 個,跳過 0 個 ==========
solution:未包含AdvAPI32.lib
1>cfont.obj : error LNK2019: 無法解析的外部符號 "bool __cdecl d3d::InitD3D(struct HINSTANCE__ *,int,int,bool,enum _D3DDEVTYPE,struct IDirect3DDevice9 * *)" ( ?InitD3D@d3d@@YA_NPAUHINSTANCE__@@HH_NW4_D3DDEVTYPE@@PAPAUIDirect3DDevice9@@@Z ),該符號在函數 _WinMain@16 中被引用
1>dxutil.obj : error LNK2019: 無法解析的外部符號 __imp__RegCloseKey@4 ,該符號在函數 "long __cdecl DXUtil_GetDXSDKMediaPathCch(wchar_t *,int)" ( ?DXUtil_GetDXSDKMediaPathCch@@YAJPA_WH@Z ) 中被引用
1>dxutil.obj : error LNK2019: 無法解析的外部符號 __imp__RegQueryValueExW@24 ,該符號在函數 "long __cdecl DXUtil_GetDXSDKMediaPathCch(wchar_t *,int)" ( ?DXUtil_GetDXSDKMediaPathCch@@YAJPA_WH@Z ) 中被引用
1>dxutil.obj : error LNK2019: 無法解析的外部符號 __imp__RegOpenKeyExW@20 ,該符號在函數 "long __cdecl DXUtil_GetDXSDKMediaPathCch(wchar_t *,int)" ( ?DXUtil_GetDXSDKMediaPathCch@@YAJPA_WH@Z ) 中被引用
1>dxutil.obj : error LNK2019: 無法解析的外部符號 __imp__RegSetValueExW@24 ,該符號在函數 "long __cdecl DXUtil_WriteStringRegKey(struct HKEY__ *,wchar_t *,wchar_t *)" ( ?DXUtil_WriteStringRegKey@@YAJPAUHKEY__@@PA_W1@Z ) 中被引用
1>E:\Visual Studio 2010\Projects\WinTest\Debug\WinTest.exe : fatal error LNK1120: 5 個無法解析的外部命令
1>
1>生成失敗。
1>
1>已用時間 00:00:01.19
========== 生成: 成功 0 個,失敗 1 個,最新 0 個,跳過 0 個 ==========
solution:未包含AdvAPI32.lib
d3d9.lib
d3dx9.lib
winmm.lib
Gdi32.lib
user32.lib
否則可能出現如下問題:
Mantis.obj : error LNK2001: unresolved external symbol __imp__DispatchMessageA@4
Mantis.obj : error LNK2001: unresolved external symbol __imp__TranslateMessage@4
Mantis.obj : error LNK2001: unresolved external symbol __imp__GetMessageA@16
Mantis.obj : error LNK2001: unresolved external symbol __imp__LoadStringA@16
error LNK2019: 無法解析的外部符號 _Direct3DCreate9@4
d3dx9.lib
winmm.lib
Gdi32.lib
user32.lib
否則可能出現如下問題:
Mantis.obj : error LNK2001: unresolved external symbol __imp__DispatchMessageA@4
Mantis.obj : error LNK2001: unresolved external symbol __imp__TranslateMessage@4
Mantis.obj : error LNK2001: unresolved external symbol __imp__GetMessageA@16
Mantis.obj : error LNK2001: unresolved external symbol __imp__LoadStringA@16
error LNK2019: 無法解析的外部符號 _Direct3DCreate9@4