Форум программистов, компьютерный форум CyberForum.ru

LNK2019 D3D9 - C++

Восстановить пароль Регистрация
 
Return0
10 / 4 / 0
Регистрация: 08.02.2015
Сообщений: 116
04.10.2015, 22:56     LNK2019 D3D9 #1
Вот сама ошибка
C++
1
error LNK2019: unresolved external symbol _D3DXCreateFontA@48 referenced in function "void __cdecl DrawIndicator(void *)" (?DrawIndicator@@YAXPAX@Z)
Вот код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#include <Windows.h>
#include <vector>
#include <d3d9.h>
#include <d3dx9.h>
#include <d3dx9core.h>
#include "C:\Users\Администратор\Desktop\Компьютер\C++\БИБЛИОТЕКИ\MinHook\MinHook_131_src\include\MinHook.h"
#pragma comment(lib,"libMinHook-x64-v100-mt")
#pragma comment(lib,"libMinHook-x64-v100-mdd")
#pragma comment(lib, "d3d9")
#pragma comment(lib, "d3dx9")
#pragma comment(lib, "d3dx9d")
#pragma comment( lib,"d3dxof" )
#pragma comment( lib,"dxguid" )
#pragma comment( lib,"DxErr" )
 
typedef IDirect3D9* (__stdcall *DIRECT3DCREATE9)(unsigned int);
typedef long (__stdcall *PRESENT9)(IDirect3DDevice9* self, const RECT*, const RECT*, HWND, void*);
 
PRESENT9 g_D3D9_Present = 0;
BYTE g_codeFragment_p9[5] = {0, 0, 0, 0, 0};
BYTE g_jmp_p9[5] = {0, 0, 0, 0, 0};
DWORD g_savedProtection_p9 = 0;
DWORD present9 = 0;
bool indicator = 0;
D3DRECT rec = {10, 10, 120, 30};
ID3DXFont *m_font = 0;
RECT fontRect = {10, 15, 120, 120};
D3DCOLOR bkgColor = 0;
D3DCOLOR fontColor = 0;
 
void DrawIndicator(void* self)
{
    IDirect3DDevice9* dev = (IDirect3DDevice9*)self;
    dev->BeginScene(); 
    D3DXCreateFontA(dev, 12, 0, FW_BOLD, 0, 0, 1, 0, 0, 0 | FF_DONTCARE, TEXT("Arial"), &m_font);  
    
    if(indicator)
    {
        bkgColor = D3DCOLOR_XRGB(0, 0, 255);
        fontColor = D3DCOLOR_XRGB(0, 255, 255);
    }
    else
    {
        bkgColor = D3DCOLOR_XRGB(255, 0, 0);
        fontColor = D3DCOLOR_XRGB(255, 0, 0);
    }
    dev->Clear(1, &rec, D3DCLEAR_TARGET, bkgColor, 1.0f, 0);
    m_font->DrawText(0, "keng.gamehacklab.ru", -1, &fontRect, 0, fontColor);
    dev->EndScene();
}
 
void GetDevice9Methods()
{
    HWND hWnd = CreateWindowA("STATIC","dummy", 0, 0, 0, 0, 0, 0, 0, 0, 0);
    HMODULE hD3D9 = LoadLibrary("d3d9");
    DIRECT3DCREATE9 Direct3DCreate9 = (DIRECT3DCREATE9)GetProcAddress(hD3D9, "Direct3DCreate9");
    IDirect3D9* d3d = Direct3DCreate9(D3D_SDK_VERSION);
    D3DDISPLAYMODE d3ddm;
    d3d->GetAdapterDisplayMode(0, &d3ddm);
    D3DPRESENT_PARAMETERS d3dpp;
    ZeroMemory(&d3dpp, sizeof(d3dpp));
    d3dpp.Windowed = 1;
    d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
    d3dpp.BackBufferFormat = d3ddm.Format;
    IDirect3DDevice9* d3dDevice = 0;
    d3d->CreateDevice(0, D3DDEVTYPE_HAL, hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &d3dpp, &d3dDevice);
    DWORD* vtablePtr = (DWORD*)(*((DWORD*)d3dDevice));
    present9 = vtablePtr[17] - (DWORD)hD3D9;
    d3dDevice->Release();
    d3d->Release();
    FreeLibrary(hD3D9);
    CloseHandle(hWnd);
}
 
long __stdcall HookedPresent9(IDirect3DDevice9* self, const RECT* src, const RECT* dest, HWND hWnd, void* unused)
{
    BYTE* codeDest = (BYTE*)g_D3D9_Present;
    codeDest[0] = g_codeFragment_p9[0];
    *((DWORD*)(codeDest + 1)) = *((DWORD*)(g_codeFragment_p9 + 1));
    DrawIndicator(self);
    DWORD res = g_D3D9_Present(self, src, dest, hWnd, unused);
    codeDest[0] = g_jmp_p9[0];
    *((DWORD*)(codeDest + 1)) = *((DWORD*)(g_jmp_p9 + 1));
    return res;
}
 
void HookDevice9Methods()
{
    HMODULE hD3D9 = GetModuleHandle("d3d9.dll");
    g_D3D9_Present = (PRESENT9)((DWORD)hD3D9 + present9);
    g_jmp_p9[0] = 0xE9;
    DWORD addr = (DWORD)HookedPresent9 - (DWORD)g_D3D9_Present - 5;
    memcpy(g_jmp_p9 + 1, &addr, sizeof(DWORD));
    memcpy(g_codeFragment_p9, g_D3D9_Present, 5);
    VirtualProtect(g_D3D9_Present, 8, PAGE_EXECUTE_READWRITE, &g_savedProtection_p9);
    memcpy(g_D3D9_Present, g_jmp_p9, 5);
}
 
DWORD __stdcall TF(void* lpParam)
{
    GetDevice9Methods();
    HookDevice9Methods();
    return 0;
}
 
DWORD __stdcall KeyboardHook(void* lpParam)
{
    while(1)
    {
        if(GetAsyncKeyState(VK_F1))   
        {
            indicator = !indicator;
            Beep(500,200);
        }
        Sleep(100);
    }     
    return 0;
}
 
int WINAPI DllMain(HINSTANCE hInst, DWORD  ul_reason_for_call, void* lpReserved)
{
    switch (ul_reason_for_call)   
    {
    case DLL_PROCESS_ATTACH:
        CreateThread(0, 0, &TF, 0, 0, 0);
        CreateThread(0, 0, &KeyboardHook, 0, 0, 0);
    }
    return 1;
}
Но суть не в коде а в ошибке,я уже почти все DirectX lib подключил а он все равно жалуется,в настройках тоже пробовал установить
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.10.2015, 22:56     LNK2019 D3D9
Посмотрите здесь:

C++ Ошибка LNK2019
Ошибка LNK2019 C++
C++ LNK2019 и LNK1120
Ошибка LNK2019 C++
Ошибка LNK2019 C++
C++ error LNK2019
LNK2019 C++
LNK2019 and LNK1120 C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
tnk500
113 / 117 / 25
Регистрация: 25.08.2012
Сообщений: 1,211
Завершенные тесты: 3
04.10.2015, 23:40     LNK2019 D3D9 #2
Return0, проверьте, все ли .dll файлы указаны в "Дополнительных зависимостях" настройки проекта. И в pragma comment'ах в названиях библиотек на всякий случай допишите расширения .lib
Return0
10 / 4 / 0
Регистрация: 08.02.2015
Сообщений: 116
05.10.2015, 09:30  [ТС]     LNK2019 D3D9 #3
А можно узнать какие dll должны быть подключены?По моему для DirectX нужны только .h .lib
Yandex
Объявления
05.10.2015, 09:30     LNK2019 D3D9
Ответ Создать тему
Опции темы

Текущее время: 09:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru