D3D9 Direct3DCreate9() 链接器错误,但所有其他 D3D 函数都有效

D3D9 Direct3DCreate9() Linker error, but all other D3D functions work

本文关键字:其他 D3D 函数 有效 Direct3DCreate9 链接 错误 D3D9      更新时间:2023-10-16

我正在尝试为"Direct3D9"创建一个包装器,以便在我自己的应用程序中快速轻松地使用"DirectX 9"。 除了唯一的函数"Direct3DCreate9"之外,一切都编译得很好。 如果我注释掉该函数,那么所有其他 Direct X 函数都可以很好地编译。我从Microsoft网站下载了SDK(就像我之前多次一样)https://www.microsoft.com/en-us/download/details.aspx?id=6812。

我尝试在Visual Studio的项目设置中链接d3d9.lib。 我尝试使用 #pragma 评论链接器#pragma comment (lib, "d3d9.lib")

我在网上找不到任何类似的问题。 我能找到的只有与我相关的问题是那些合法地没有链接到图书馆的人。

bool D3D9::Initialize(HWND i_hWnd)
{
D3DPRESENT_PARAMETERS d3dpp;
ZeroMemory(&d3dpp, sizeof(d3dpp));
d3dpp.Windowed = TRUE;
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
d3dpp.hDeviceWindow = i_hWnd;
// If I comment this line out, it compiles fine
m_pD3D = Direct3DCreate9(D3D_SDK_VERSION); // LINKER ERROR
HRESULT hr = m_pD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, i_hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &d3dpp, &m_pDevice);
return true;
}

当我注释掉代码调用Direct3DCreate9行时,我希望 Direct3DDevice 本身上的所有其他 D3D 调用都存在链接器错误。 但是一旦我评论出一行,编译就没有问题了。

我在Windows 10上使用Visual Studio 2015。

我修复了它。

问题是我需要链接到Microsoft DirectX SDK(2010 年 6 月)\Lib\x86

我链接到Microsoft DirectX SDK(2010 年 6 月)\Lib\x64

相关文章: