Я пытаюсь скомпилировать некоторый код для визуализации файлов в окнах, которые не принадлежат моему приложению. Я хочу использовать DirectX 9 для достижения этого, но по какой-то причине ошибки компоновщика убивают меня прямо сейчас.LNK2019: Неразрешенный символ
Im, включая все мои библиотеки в файле .h (см. Main.h ниже).
Теперь я включаю этот файл .h в любой другой файл .h, который есть, чтобы использовать его везде. Иногда я включаю только файл .h, который включает мой основной файл.
Проблема в том, что когда я иду в какой-либо класс, я хочу использовать DirectX в (с включенным файлом .h), я получаю ошибку LNK2019.
auto hResult = Direct3DCreate9Ex(D3D_SDK_VERSION, &this->m_pDirect3D9Ex);
Ошибка при Direct3DCreate9Ex
Соответствующий .h файл включает в себя основной файл .h следующим образом:
#ifdef _MSC_VER
#pragma once
#endif
#include "main.h"
main.h (полное):
#pragma once
#endif
#include <Windows.h>
#include <iostream>
#include <vector>
#include <memory>
#include <chrono>
#include <thread>
#include <d3d9.h>
#include <d3dx9.h>
#include <dwmapi.h>
#pragma comment(lib, "d3d9.lib")
#pragma comment(lib, "d3dx9.lib")
#pragma comment(lib, "dwmapi.lib")
#endif
Это даже работает при компиляции с VisualStudio, но мне нужно добиться этого с помощью cl.exe. Когда я пытаюсь построить его после того, как я переместил все из VisualStudio, возникают неразрешенные ошибки символов.
Я был бы очень признателен за любую помощь, которую я мог получить, уже потратил впустую на это время.
Edit: Ошибка
Конечно :) Как вы видите, я переформулировал свой вопрос точнее, как вы просили до – Friwi
Вы запустили файл .bat установки для компилятора, прежде чем пытались скомпилировать и связать? Вы должны убедиться, что у вас есть правильный путь к библиотеке. vcvars32.bat или подобное? Какую команду вы используете для компиляции и ссылки? – JJF
cl.exe/I "% DXSDK_DIR% \ Include"/EHsc/Od/MT * .cpp d3dx9.lib d3d9.lib dwmapi.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32 .lib ole32.lib oleaut32.lib uuid.lib/link/FORCE: MULTIPLE/LIBPATH: "% DXSDK_DIR% \ Lib \ x64 \"/SUBSYSTEM: CONSOLE /OUT :PH.exe – Friwi