簡體   English   中英

未解決的外部符號錯誤,C ++ VS15 d3dx9庫

[英]Unresolved External Symbol error, C++ VS15 d3dx9 Library

由於某種原因,我收到了“無法解析的外部符號 ”錯誤,而我只是不知道為什么。

它抱怨“ __snprintf ”,“ __sprintf ”和“ __vsnprintf ”,即使我沒有使用它們。

編譯器圖片:

在此處輸入圖片說明

如您所見,我正在使用d3dx9.lib,這些是我的include&庫:

#include <Windows.h>
#include <iostream>
#include <stdio.h>

#include "d3d9.h"
#include "d3dx9.h"
#pragma comment(lib, "d3d9.lib")
#pragma comment(lib, "d3dx9.lib")

我在以下位置使用printf的唯一代碼:

void v_DrawText(int X, int Y, D3DCOLOR Color, ID3DXFont *font, const char* sText, ...)
{
     char sText_[1024] = "";
     va_list ap;

     if (!sText || *sText == '\0')
        return;

     va_start(ap, sText);
     _snprintf_s(sText_, 1024, 1023, sText, ap);
     va_end(ap);

     RECT Position = { X, Y, X + 500, Y + 50 };
     font->DrawText(NULL, sText_, -1, &Position, DT_LEFT | DT_WORDBREAK, Color);
}

我已經嘗試過從頭開始重建解決方案,重新下載庫,然后將其直接添加到鏈接器中。 只是行不通..

項目配置(根據要求):

在此處輸入圖片說明

請記住, D3DX9 (和D3DX10D3DX11 )和DirectX SDK均已棄用。 參見MSDN VS 2010是D3DX9與DirectX SDK正式支持的最新版本(2010年6月)。 通常,導入庫應該起作用,但是靜態庫很可能不起作用。

請注意,DXERR.LIB不適用於VS 2015,因為CRT已更改。 有關詳細信息,請參見此線程

您仍在使用2004年夏季開始的DirectX SDK 9.0b,該版本當時支持VS .NET 2002和VS .NET2003。如果仍然需要使用舊版D3DX9,請移至DirectX SDK(2010年6月)發行版。 看到這篇文章

另外,您還錯誤地配置了包含/庫路徑,以將舊版DirectX SDK與VS 2012或更高版本隨附的Windows 8.x SDK混合使用。 有關正確的路徑順序,請參閱MSDN上的說明,這與當前的順序相反

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM