Итак, у меня есть эта DLL, которая содержит некоторые функции для моей программы. Вызывается gc.dll У меня есть в качестве ссылки в моем основном проекте. В моем основном проекте у меня есть 2 заголовка и 2 исходных файла,
dx9d3d.h
main.h
main.cpp
dx9d3d.h
Вот мои включения в каждый файл
dx9d3d.h:
#include "gc.h"
dx9d3d.cpp:
#include "dx9d3d.h"
main.h:
#include <Windows.h>
#include <stdio.h>
#include <iostream>
#include <fstream>
#include <string>
#include "basics.h"
#include "dx9d3d.h"
main.cpp:
#include "main.h"
Я продолжаю получать ошибку компоновщика для мультиопределенных символов для символов d3ddevice и directx, которые есть в моем gc.h. Я понятия не имею, как я могу включить gc.h в dx9d3d.h без того, чтобы он был мультиопределенным символом: / пожалуйста, помогите мне разобраться в этих ошибках компоновщика.
и вот код внутри gc.h
namespace xaD3D {
__declspec(dllexport) LPDIRECT3D9 d3d;
__declspec(dllexport) LPDIRECT3DDEVICE9 d3dDev;
__declspec(dllexport) bool initD3D(HWND hWnd);
}
и вот ошибки
2>main.obj : error LNK2005: "struct IDirect3DDevice9 * xaD3D::d3dDev" (? d3dDev@xaD3D@@3PAUIDirect3DDevice9@@A) already defined in dx9d3d.obj
2>main.obj : error LNK2005: "struct IDirect3D9 * xaD3D::d3d" (? d3d@xaD3D@@3PAUIDirect3D9@@A) already defined in dx9d3d.obj