Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

Не могу собрать проект

-

Вопросы и ответы, обсуждения

- Ваши вопросы по C/C++ только в данном разделе

Ответ
 
Опции темы
Старый 07.03.2019, 09:44   #1
 Разведчик
Аватар для mumut
 
mumut никому не известный тип
Регистрация: 06.03.2019
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Не могу собрать проект

Захотел сделать вх и нашел исходник попробовал собрать но он выдавал ошибку:
[Ссылки могут видеть только зарегистрированные пользователи. ]
И мне написали что нужно сделать что то с DetourAttach и я сделал так:
[Ссылки могут видеть только зарегистрированные пользователи. ]
Правильно ли я сделал или нет ?
Когда я попробовал собрать проект то мне выдало такие ошибки:
[Ссылки могут видеть только зарегистрированные пользователи. ]
Что надо сделать что бы убрать их ?
  Ответить с цитированием
Старый 07.03.2019, 11:22   #2
Super Moderator
 Маршал
Аватар для Тигрь
 
Тигрь сломал счётчик популярности :(Тигрь сломал счётчик популярности :(Тигрь сломал счётчик популярности :(Тигрь сломал счётчик популярности :(Тигрь сломал счётчик популярности :(Тигрь сломал счётчик популярности :(Тигрь сломал счётчик популярности :(Тигрь сломал счётчик популярности :(Тигрь сломал счётчик популярности :(Тигрь сломал счётчик популярности :(Тигрь сломал счётчик популярности :(
Регистрация: 05.05.2009
Сообщений: 875
Популярность: 48955
Золото Zhyk.Ru: 850
Сказал(а) спасибо: 155
Поблагодарили 739 раз(а) в 274 сообщениях
 
По умолчанию Re: Не могу собрать проект

выкладывай полностью проект который пытаешься собрать
________________
Продаю приват читы для AION Absolute, desteny 3.5, Legend, Cataclysm, Ru, EU, NA
Продаю многооконку на R2 Пишу читы на заказ под любые игры. Предложения в ЛС.
Все мои читы/программы/статьи тут: http://zhyk.ru/forum/showpost.php?p=38501&postcount=21
  Ответить с цитированием
Старый 07.03.2019, 14:56   #3
 Разведчик
Аватар для mumut
 
mumut никому не известный тип
Регистрация: 06.03.2019
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Не могу собрать проект

Так я взял исходники из этого сайта:
https://zhyk.ru/forum/showthread.php?t=1043987
Ну если надо то вот:

Цитата:
#include <vector>
// для директа
#include "C:\Program Files\Microsoft DirectX SDK (June 2010)\Include\d3d9.h"
#include "C:\Program Files\Microsoft DirectX SDK (June 2010)\Include\d3dx9core.h"
// для перехвата функции endscene
#include "detours.h"
#include <iostream>
#include <string>

#pragma comment(lib, "d3d9.lib")
#pragma comment(lib, "d3dx9.lib")
// тут и так понятно зачем это нужно
using namespace std;

typedef HRESULT(WINAPI* pDrawIndexedPrimitive)(LPDIRECT3DDEVICE9, D3DPRIMITIVETYPE, int, UINT, UINT, UINT, UINT);
typedef HRESULT(WINAPI* pEndScene)(LPDIRECT3DDEVICE9);

pDrawIndexedPrimitive oDrawIndexedPrimitive;
pEndScene oEndScene;

D3DVIEWPORT9 Vpt;
D3DLOCKED_RECT d3dlr;
LPD3DXFONT pFont = NULL;

LPDIRECT3DBASETEXTURE9 BTEX = NULL;
LPDIRECT3DTEXTURE9 Grey, Red;
bool Generate = true;

HRESULT GenerateTexture(IDirect3DDevice9 *pD3Ddev, IDirect3DTexture9 **ppD3Dtex, DWORD colour32);
HRESULT WINAPI hkEndScene(LPDIRECT3DDEVICE9 pDev);
HRESULT WINAPI hkDrawIndexedPrimitive(LPDIRECT3DDEVICE9 pDev, D3DPRIMITIVETYPE PrimType, INT BaseVertexIndex, UINT MinVertexIndex, UINT NumVertices, UINT startIndex, UINT PrimitiveCount);
void GetDevice9Methods();
void TF();

int WINAPI DllMain(HINSTANCE hInst, DWORD ul_reason_for_call, void* lpReserved)
{
// когда присоединили нашу длл к процессу, кстати, эта функции еще вызывается в нескольких случаях, к примеру,
//когда библиотеку отсоединили от процесса, но тогда в проверке нужно будет указывать другую причину
// нам это не особо нужно, поэтому углублятся не буду
if (ul_reason_for_call == DLL_PROCESS_ATTACH)
{
CreateThread(0, 0, (LPTHREAD_START_ROUTINE)TF, 0, 0, 0);
}
return 1;
}

void TF() {
// Здесь будет осуществляться перехват функций
GetDevice9Methods();
// Если вы хотите сделать, чтобы к примеру по нажатию клавиши менялся цвет чамсов, то делается это примерно так:
/* Создаем бесконечный цикл
В нем ожиданием нажатия клавиши
После того, как клавишу нажали, что-то делаем*/

}

void GetDevice9Methods()
{
// инициализации переменных
DWORD dip9 = 0;
DWORD endScene9 = 0;
IDirect3D9 *d3d9_ptr;
IDirect3DDevice9* d3dDevice;
DWORD* vtablePtr;
D3DPRESENT_PARAMETERS d3dpp;
// создаем окно, нужно для перехвата
HWND hWnd = CreateWindowExA(0, "STATIC", "dummy", 0, 0, 0,
0, 0, 0, 0, 0, 0);
// получаем смещение
HMODULE hD3D9 = GetModuleHandleA("d3d9.dll");
// если удалось получить смещение
if (hD3D9 != 0) {
// Создаем интерфейс
d3d9_ptr = Direct3DCreate9(D3D_SDK_VERSION);
// обнуляем память
ZeroMemory(&d3dpp, sizeof(d3dpp));
d3dpp.Windowed = 1;
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
// создаем девайс на наше свежесозданное окно
d3d9_ptr->CreateDevice(0, D3DDEVTYPE_HAL, hWnd,
D3DCREATE_SOFTWARE_VERTEXPROCESSING,
&d3dpp, &d3dDevice);
// здесь находим адреса в vmt, нужно для перехвата
vtablePtr = (PDWORD)(*((PDWORD)d3dDevice));
dip9 = vtablePtr[82] - (DWORD)hD3D9;
endScene9 = vtablePtr[42] - (DWORD)hD3D9;
d3dDevice->Release();
d3d9_ptr->Release();
}
CloseHandle(hWnd);
// собственно перехватываем наши две основные функции
// теперь, вместо оригинальных функций, будут вызываться наши
// Важный нюанс, функции, которые начинается на o - это
// оригинальные функции
// наши, начинаются с hk
//oDrawIndexedPrimitive = (pDrawIndexedPrimitive)DetourFunction((PBYTE)((DWO RD)hD3D9 + dip9), (PBYTE)hkDrawIndexedPrimitive);
//oEndScene = (pEndScene)DetourFunction((PBYTE)((DWORD)hD3D9 + endScene9), (PBYTE)hkEndScene);
oDrawIndexedPrimitive = (pDrawIndexedPrimitive)DetourAttach((PVOID*)((DWOR D)hD3D9 + dip9), (PVOID)hkDrawIndexedPrimitive);
}

HRESULT WINAPI hkDrawIndexedPrimitive(LPDIRECT3DDEVICE9 pDev,
D3DPRIMITIVETYPE PrimType, INT BaseVertexIndex, UINT MinVertexIndex,
UINT NumVertices, UINT startIndex, UINT PrimitiveCount)
{
// все дефолтно, создаем переменные
LPDIRECT3DVERTEXBUFFER9 Stream_Data;
UINT Offset = 0;
UINT Stride = 0;

if (pDev->GetStreamSource(0, &Stream_Data, &Offset, &Stride) == S_OK)
Stream_Data->Release();

// Самая интересная часть. У каждой модели есть страйды, количество вершин и количество примитивов
// обычно, у каждой модели эти три переменные формируют уникальную комбинацию, по которой
// можно находить модель.
// Т.е. тут должна быть проверка вида if ( (Stride=32) && (NumVertices==1784) && (PrimitiveCount==1342))
// Но во многих игровых движках, чем дальше от тебя моделька, тем меньше страйдов, вершин и примитивов
// Ведь зачем рисовать модельку хорошего качества, если она находится на большом расстоянии от игрока и
// занимает 1 см^2 на экране
// Плюс, надо учитывать то, что голова это одна модель, тело уже другая
// Полный список для игры CS:GO, готовый в употребление, возьмите тут [Ссылки могут видеть только зарегистрированные пользователи. ], чтобы его найти
// для другой игры, можно воспользоваться логгером или погуглить имя_вашей_иры model rec

if ((NumVertices == 119) && (PrimitiveCount == 112) || (NumVertices == 189) && (PrimitiveCount == 123) || (NumVertices == 246) && (PrimitiveCount == 222) || (NumVertices == 253) && (PrimitiveCount == 175) || (NumVertices == 843) && (PrimitiveCount == 1202) || (NumVertices == 2406) && (PrimitiveCount == 3521))
{
// Здесь устанавливаем нашей моделе серую текстуру, котоую будет видно, когда модель за стеной
// D3DRS_ZENABLE устанавливаем false
pDev->SetRenderState(D3DRS_ZENABLE, false);
pDev->SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID);
pDev->SetTexture(0, Grey);
// вызываем оригинальную функцию
oDrawIndexedPrimitive(pDev, PrimType, BaseVertexIndex,
MinVertexIndex, NumVertices, startIndex,
PrimitiveCount);
// здесь накладываем красную текстурку, когда моделька в прямой зоне видимости игрока
pDev->SetRenderState(D3DRS_ZENABLE, true);
pDev->SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID);
pDev->SetTexture(0, Red);



}
// вызываем оригинальную функцию
return oDrawIndexedPrimitive(pDev, PrimType, BaseVertexIndex,
MinVertexIndex, NumVertices, startIndex,
PrimitiveCount);
}

// Вызывается, когда происходит окончание сцены. Каждая сцена = 1 кадру.
// Т.е. если в игре 30 fps, то данные функция вызывается 30 раз в секунду
HRESULT WINAPI hkEndScene(LPDIRECT3DDEVICE9 pDev)
{
pDev->GetViewport(&Vpt);
// Если наши текстурки не были еще сгенерированы, то генерируем их
if (Generate)

{
// цвета, последнии три цифры в функции отвечают за цвет
// задаются по типу RGB
GenerateTexture(pDev, &Red, D3DCOLOR_ARGB(255, 255, 0, 0));

GenerateTexture(pDev, &Grey, D3DCOLOR_ARGB(255, 128, 128, 128));

Generate = false;

}
// вызываем оригинальную функцию
return oEndScene(pDev);
}

// И функция для генерации текстур с нужным нам цветом
// В ней ничего интересно нет, поэтому углублятся не буду
HRESULT GenerateTexture(IDirect3DDevice9 *pD3Ddev, IDirect3DTexture9 **ppD3Dtex, DWORD colour32)

{

if (FAILED(pD3Ddev->CreateTexture(8, 8, 1, 0, D3DFMT_A4R4G4B4, D3DPOOL_MANAGED, ppD3Dtex, NULL)))

return E_FAIL;



WORD colour16 = ((WORD)((colour32 >> 28) & 0xF) << 12)

| (WORD)(((colour32 >> 20) & 0xF) << 8)

| (WORD)(((colour32 >> 12) & 0xF) << 4)

| (WORD)(((colour32 >> 4) & 0xF) << 0);


D3DLOCKED_RECT d3dlr;

(*ppD3Dtex)->LockRect(0, &d3dlr, 0, 0);

WORD *pDst16 = (WORD*)d3dlr.pBits;


for (int xy = 0; xy < 8 * 8; xy++)

*pDst16++ = colour16;


(*ppD3Dtex)->UnlockRect(0);


return S_OK;

}

  Ответить с цитированием
Старый 10.03.2019, 11:45   #4
 Разведчик
Аватар для gavalka
 
gavalka никому не известный тип
Регистрация: 19.10.2017
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Не могу собрать проект

Ты забыл прилинковать lib файл.

#pragma comment(lib, "detours.lib")
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Статья] Мини-гайд, Как собрать проект в Visual Studio в один файл с помощью ILMerge zZkamedosZz C# 2 02.07.2016 15:36
[Продам] Steam\Call Of Duty:Black Ops 2 (Могу аккаунтом, могу ключом) Ammigo32 Steam, Origin, Uplay и другие системы 0 11.06.2015 01:10
[Помогите!] Как собрать бао на 90+? Эсти Общение и обсуждение Perfect World 22 08.07.2013 16:12
Не могу построить проект длл помогите кто может!=( Staker5000 Общение и обсуждение, архив Point Blank 0 10.04.2012 22:22

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 16:21.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net