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

LNK2019 D3D9 - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Переделать код через вектор http://www.cyberforum.ru/cpp-beginners/thread1544563.html
Нужно сделать код не через строки, а через вектор #include <iostream> #include <string> using namespace std; int main() { string s1, s2; cout << "Enter main string :"; getline(cin, s1); cout << "Enter sub string :";
C++ Перегруженные функции Помогите написать перегруженные функции и основную программу, которая их вызывает. 1) для вычитания целых чисел; 2) для вычитания комплексных чисел http://www.cyberforum.ru/cpp-beginners/thread1544549.html
C++ Задача3
Задача3. П.5.18. Запрещено размещать задания и решения в виде картинок и других файлов с их текстом.
Напечатать слова содержащие по одной цифре C++
Задана строка, состоящая из символов. Символы объединяются в слова. Слова друг от друга отделяются одним или несколькими пробелами. В конце текста ставится точка. Текст содержит не более 255 символов. Выполнить ввод строки, используя функцию Gets(s) и обработку строки Напечатать все слова, которые содержат по одной цифре.
C++ Функция для удаления строки из двумерного массива http://www.cyberforum.ru/cpp-beginners/thread1544545.html
Массив должен передаваться в функцию как параметр. Написать функцию для удаления строки из двумерного массива. Оставшиеся строки должны быть расположены плотно, недостающие элементы заменяются 0. С помощью разработанных функций исключить из массива строки с номерами от А до В.
C++ Вычислить значение функции F Вычислить и вывести на экран значения функции F. У нас есть функция F, у нее 3 условия. Может быть выполнено только одно, но если я задаю нужные значения для 1 или 2 ( т.е If выполняется для 1 или для 2), и она считает, то он сразу переходит и к 3 условию. Как сделать, чтобы она остановилась и не считала в этом случае 3 условие? #include <iostream> int main() { using namespace std;... подробнее

Показать сообщение отдельно
Return0
10 / 4 / 0
Регистрация: 08.02.2015
Сообщений: 118

LNK2019 D3D9 - C++

04.10.2015, 22:56. Просмотров 264. Ответов 2
Метки (Все метки)

Вот сама ошибка
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 подключил а он все равно жалуется,в настройках тоже пробовал установить
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru