【问题标题】:How do I solve LNK2019 for Direct3DCreate9?如何解决 Direct3DCreate9 的 LNK2019?
【发布时间】:2013-01-18 01:02:07
【问题描述】:

在编译时出现以下错误:

RAT_RendererDX9.obj:错误 LNK2019:未解析的外部符号 _Direct3DCreate9@4 在函数“public: void __thiscall RAT_ENGINE::RAT_RendererDX9::Init(class RAT_ENGINE::RAT_WindowManager *)”(?Init@RAT_RendererDX9@RAT_ENGINE@@QAEXPAVRAT_WindowManager @2@@Z)

我唯一使用Direct3DCreate9 的地方是在我的渲染器的Init() 函数中,它具有以下代码:

void RAT_RendererDX9::Init(RAT_WindowManager* argWMan)
{
    wMan = argWMan;

    g_pD3D = (LPDIRECT3D9)Direct3DCreate9( D3D_SDK_VERSION );

    D3DPRESENT_PARAMETERS d3dpp;
    ZeroMemory( &d3dpp, sizeof( d3dpp ) );
    d3dpp.Windowed = TRUE;
    d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
    d3dpp.BackBufferFormat = D3DFMT_UNKNOWN;

    g_pD3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,
                              D3DCREATE_SOFTWARE_VERTEXPROCESSING,
                              &d3dpp, &g_pd3dDevice );
}

这个错误来自哪里,我该如何解决?
我尝试了 LNK2019 的其他答案,但没有解决我的问题。

【问题讨论】:

  • 需要在directx库中链接。
  • 将 d3d9.lib 添加到链接器的附加依赖项中。
  • 我已经用过#include <d3d9.h>,在示例文件中也使用过,但是不起作用。
  • @Friso1990:包含标头不会将库添加到链接器依赖项中。

标签: c++ visual-c++ directx directx-9


【解决方案1】:

正如 GSerg 所说,我必须将 d3d9.lib 文件添加到链接器的附加依赖项中。

【讨论】:

    猜你喜欢
    • 2013-01-31
    • 2021-06-13
    • 1970-01-01
    • 2013-11-22
    • 1970-01-01
    • 2010-10-25
    • 2013-11-13
    • 2012-01-26
    • 1970-01-01
    相关资源
    最近更新 更多