brove92
15-12-2008, 17:21
ciao a tutti.........,
avrei bisogno di un po d'aiuto su cm poter disegnare una linea in c++....
precisamente in una dll...ke poi inietterò nel processo da me prestabilito!!!!
Quindi la linea dovrà essere sempre in primo piano...mentre in secondo piano ci sarà la finestra dell'applicazione in cui ho iniettato la dll!!!!
Possibilmente in modo che nn si modifichi "d3d8.dll".....poichè l'applicazione "target" si tratta di un gioco.....!!!!
potrebbe anke essere facile per voi....però ho provato e riprovato ma nn ci riesco....:cry: :doh:
Ecco qua la mia source ke ho iniziato a compilare:
#include "stdafx.h"
#pragma comment(lib, "d3d8.lib")
#pragma comment(lib, "d3dx8.lib")
#include <d3d8.h>
#include <d3dx8.h>
#include <fstream>
#include <stdio.h>
using namespace std;
ofstream ofile;
char Urca[320];
#define WIN32_LEAN_AND_MEAN
#ifndef _MAIN_H
#define _MAIN_H
char *GetDirectoryFile(char *filename);
void __cdecl add_log (const char * fmt, ...);
char dlldir [320];
#endif
BOOL APIENTRY DllMain(HMODULE hSese, DWORD dwUaaaa, PVOID pvReserved)
{
if(dwUaaaa == DLL_PROCESS_ATTACH)
{
DisableThreadLibraryCalls(hSese);
CreateThread(0, 0, (LPTHREAD_START_ROUTINE)linea, 0, 0, 0);
GetModuleFileName(hSese, dlldir, 512);
for(int i = strlen(dlldir); i > 0; i--) { if(dlldir[i] == '\\') { dlldir[i+1] = 0; break; } }
ofile.open(GetDirectoryFile("log.txt"), ios::app);
return TRUE;
}
else if(dwUaaaa == DLL_PROCESS_DETACH)
{
if(ofile) { ofile.close(); }
}
return false;
}
char *GetDirectoryFile(char *filename)
{
static char path[320];
strcpy(path, dlldir);
strcat(path, filename);
return path;
}
void __cdecl add_log (const char *fmt, ...)
{
if(ofile != NULL)
{
if(!fmt) { return; }
va_list va_alist;
char logbuf[256] = {0};
va_start (va_alist, fmt);
_vsnprintf (logbuf+strlen(logbuf), sizeof(logbuf) - strlen(logbuf), fmt, va_alist);
va_end (va_alist);
ofile << logbuf << endl;
}
}
PS: io ho provato DrawLine.....ma nn ci riesco....GRAZIE!!!!!!
avrei bisogno di un po d'aiuto su cm poter disegnare una linea in c++....
precisamente in una dll...ke poi inietterò nel processo da me prestabilito!!!!
Quindi la linea dovrà essere sempre in primo piano...mentre in secondo piano ci sarà la finestra dell'applicazione in cui ho iniettato la dll!!!!
Possibilmente in modo che nn si modifichi "d3d8.dll".....poichè l'applicazione "target" si tratta di un gioco.....!!!!
potrebbe anke essere facile per voi....però ho provato e riprovato ma nn ci riesco....:cry: :doh:
Ecco qua la mia source ke ho iniziato a compilare:
#include "stdafx.h"
#pragma comment(lib, "d3d8.lib")
#pragma comment(lib, "d3dx8.lib")
#include <d3d8.h>
#include <d3dx8.h>
#include <fstream>
#include <stdio.h>
using namespace std;
ofstream ofile;
char Urca[320];
#define WIN32_LEAN_AND_MEAN
#ifndef _MAIN_H
#define _MAIN_H
char *GetDirectoryFile(char *filename);
void __cdecl add_log (const char * fmt, ...);
char dlldir [320];
#endif
BOOL APIENTRY DllMain(HMODULE hSese, DWORD dwUaaaa, PVOID pvReserved)
{
if(dwUaaaa == DLL_PROCESS_ATTACH)
{
DisableThreadLibraryCalls(hSese);
CreateThread(0, 0, (LPTHREAD_START_ROUTINE)linea, 0, 0, 0);
GetModuleFileName(hSese, dlldir, 512);
for(int i = strlen(dlldir); i > 0; i--) { if(dlldir[i] == '\\') { dlldir[i+1] = 0; break; } }
ofile.open(GetDirectoryFile("log.txt"), ios::app);
return TRUE;
}
else if(dwUaaaa == DLL_PROCESS_DETACH)
{
if(ofile) { ofile.close(); }
}
return false;
}
char *GetDirectoryFile(char *filename)
{
static char path[320];
strcpy(path, dlldir);
strcat(path, filename);
return path;
}
void __cdecl add_log (const char *fmt, ...)
{
if(ofile != NULL)
{
if(!fmt) { return; }
va_list va_alist;
char logbuf[256] = {0};
va_start (va_alist, fmt);
_vsnprintf (logbuf+strlen(logbuf), sizeof(logbuf) - strlen(logbuf), fmt, va_alist);
va_end (va_alist);
ofile << logbuf << endl;
}
}
PS: io ho provato DrawLine.....ma nn ci riesco....GRAZIE!!!!!!