Font В Directx 10

mibin

Well-known member
29.01.2009
48
0
#1
При компиляции Visual C++ ругается на эту строку:
<!--shcode--><pre><code class='CPP'>D3DX10CreateFont(g_pd3dDevice, 14, 8, 1, 1, FALSE, 0, 0, 0, DEFAULT_PITCH|FF_MODERN, L"Verdana", &g_pFont);[/CODE]
Пишет:
Код:
1>------ Построение начато: проект: DirectX10, Конфигурация: Debug Win32 ------
1>Компиляция...
1>winmain.cpp
1>Компоновка...
1>winmain.obj : error LNK2019: ссылка на неразрешенный внешний символ _D3DX10CreateFontW@48 в функции "long __cdecl InitDirect3D10(void)" (?InitDirect3D10@@YAJXZ)
1>C:\...\DirectX10.exe : fatal error LNK1120: 1 неразрешенных внешних элементов
1>Журнал построения был сохранен в "file://c:\Users\...\Documents\Visual Studio 2008\Projects\DirectX\DirectX10\DirectX10\Debug\BuildLog.htm"
1>DirectX10 - ошибок 2, предупреждений 0
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
Заранее спасибо за внимание к проблеме!
 

mibin

Well-known member
29.01.2009
48
0
#2
Здравствуйте! Возникла такая проблема, при подключении d3dx10.lib выскакивает ошибка:
1>LINK : fatal error LNK1104: не удается открыть файл ''d3dx10.lib''
Вот код подключения:
<!--shcode--><pre><code class='CPP'>#include <d3d10.h>
#include <d3dx10.h>

#pragma comment(lib,"d3d10.lib")
#pragma comment(lib,"d3dx10.lib")[/CODE]

В самом Visual C++ я в Параметры - Проекты и решения - Каталоги VC++ добавил все необходимые ссылки на *.h и *.lib файлы.

Добавлено через 1 час 1 минуту
[CPP]#include <C:\Program Files (x86)\Microsoft DirectX SDK (August 2009)\include\d3d10.h>
#include <C:\Program Files (x86)\Microsoft DirectX SDK (August 2009)\include\d3dx10.h>

#pragma comment(lib,"C:\\Program Files (x86)\\Microsoft DirectX SDK (August 2009)\\Lib\\x64\\d3d10.lib")
#pragma comment(lib,"C:\\Program Files (x86)\\Microsoft DirectX SDK (August 2009)\\Lib\\x64\\d3dx10d.lib")[/CPP]

Пропала проблема подключения lib файла но возникла новая проблема

1>winmain.obj : error LNK2019: ссылка на неразрешенный внешний символ _D3DX10CreateFontW@48 в функции "long __cdecl InitDirect3D10(void)" (?InitDirect3D10@@YAJXZ)
1>winmain.obj : error LNK2019: ссылка на неразрешенный внешний символ _D3D10CreateDeviceAndSwapChain@32 в функции "long __cdecl InitDirect3D10(void)" (?InitDirect3D10@@YAJXZ)
От этого я избавился когда поменял в pragma comment изменил ссылку с 64 bit на 32 bit либы, общий результат получился такой:
<!--shcode--><pre><code class='CPP'>#include <C:\Program Files (x86)\Microsoft DirectX SDK (August 2009)\include\d3d10.h>
#include <C:\Program Files (x86)\Microsoft DirectX SDK (August 2009)\include\d3dx10.h>

#pragma comment(lib,"C:\\Program Files (x86)\\Microsoft DirectX SDK (August 2009)\\Lib\\x86\\d3d10.lib")
#pragma comment(lib,"C:\\Program Files (x86)\\Microsoft DirectX SDK (August 2009)\\Lib\\x86\\d3dx10d.lib")[/CODE]

Вопрос в следующем почему приходиться прописывать полный путь хотя я пути к исходникам указал уже? И почему 64 битный либы не работают?