【发布时间】:2020-10-28 16:08:38
【问题描述】:
是的,我包含了所有库,但每次我在 x64 中运行我的程序时,它都会给我一个未解析的符号,但在 x32 中完美运行??
严重性代码描述项目文件行抑制状态 函数“int cdecl DirectXInit(struct HWND *)”(?DirectXInit@@YAHPEAUHWND__@@@Z) DirectX Overlay D:\VSprojects\2020\Mygui\Garrysmod 中引用的错误 LNK2019 未解析的外部符号 Direct3DCreate9Ex 2\覆盖瞄准器\DirectX.obj 1
来源
int DirectXInit(HWND hWnd)
{
if (FAILED(Direct3DCreate9Ex(D3D_SDK_VERSION, &p_Object)))
exit(1);
ZeroMemory(&p_Params, sizeof(p_Params));
p_Params.Windowed = TRUE;
p_Params.SwapEffect = D3DSWAPEFFECT_DISCARD;
p_Params.hDeviceWindow = hWnd;
p_Params.MultiSampleQuality = D3DMULTISAMPLE_NONE;
p_Params.BackBufferFormat = D3DFMT_A8R8G8B8;
p_Params.BackBufferWidth = Width;
p_Params.BackBufferHeight = Height;
p_Params.EnableAutoDepthStencil = TRUE;
p_Params.AutoDepthStencilFormat = D3DFMT_D16;
if (FAILED(p_Object->CreateDeviceEx(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd, D3DCREATE_HARDWARE_VERTEXPROCESSING, &p_Params, 0, &p_Device)))
exit(1);
return 0;
}
char playerO[350] = { 0 };
char enemyO[300] = { 0 };
char aimbotO[300] = { 0 };
char rect[300] = { 0 };
int counter = 15;
int Render()
{
p_Device->Clear(0, 0, D3DCLEAR_TARGET, 0, 1.0f, 0);
p_Device->BeginScene();
//Drawing Stuff
DrawBorderBox(10, 10, 200, 200, 15, 255, 255, 0, 0);
p_Device->EndScene();
p_Device->PresentEx(0, 0, 0, 0, 0);
return 0;
}
标题
#ifndef DIRECTX_H
#define DIRECTX_H
#include "Main.h"
#include "Drawings.h"
#include "read.h"
#include <Windows.h>
#include <iostream>
#include <d3d9.h>
#include <d3dx9.h>
#pragma comment(lib, "d3d9.lib")
#pragma comment(lib, "d3dx9.lib")
#include <dwmapi.h>
#pragma comment(lib, "dwmapi.lib")
extern IDirect3D9Ex* p_Object;
extern IDirect3DDevice9Ex* p_Device;
extern D3DPRESENT_PARAMETERS p_Params;
extern ID3DXLine* p_Line;
extern ID3DXFont* pFontSmall;
extern RECT rc;
int DirectXInit(HWND hWnd);
int Render();
#endif
同样,它很可能与包含无关,因为它就像 x32 中的时钟一样工作。
【问题讨论】:
-
看起来你没有链接到
d3d9.lib静态库