BCB 6 - Include Fehler
Also hier beept es nicht:
Also ist ihrendwo ein fehler... aber ich habe alles genau so gemacht sprich rüberkopiert die warnungen sind übrigens wieder da.
Code: Select all
BOOL HookDirect3D8()
{
Direct3DCreate8Next = NULL;
return HookAPI("d3d8.dll", "Direct3DCreate8", Direct3DCreate8Callback, (PVOID*) &Direct3DCreate8Next);
if(Direct3DCreate8Next == NULL)
{
MessageBeep(0);
}
}
Ob
Direct3DCreate8Next < NULL
oder
Direct3DCreate8Next > NULL
oder
Direct3DCreate8Next == NULL
es beept nicht. Also hängt er sich komplett auf;)
wenn ich
HookDirect3D7();
HookDirect3D8();
HookDirect3D9();
alle drei nehme, dann kommt bei JEDER directxanwednung ein fehler.
die zu hookende anwendung nutzt dx8 also habe ich die anderen herausgenommen, der fehler entsteht durch HookDirect3D7();!
Direct3DCreate8Next < NULL
oder
Direct3DCreate8Next > NULL
oder
Direct3DCreate8Next == NULL
es beept nicht. Also hängt er sich komplett auf;)
wenn ich
HookDirect3D7();
HookDirect3D8();
HookDirect3D9();
alle drei nehme, dann kommt bei JEDER directxanwednung ein fehler.
die zu hookende anwendung nutzt dx8 also habe ich die anderen herausgenommen, der fehler entsteht durch HookDirect3D7();!
viewtopic.php?t=611&highlight=directx
dort liegt es am game!
Nur das kann hirt doch nicht sein, denn das beispiel geht ja nur in bcb kompiliert nicht mehr!"
Das aufhängen habe ich weg bekommen!
Wenn die die HookDirect3D.dll hooke geht es wunderbar alles in wireframe.
Vielleicht könntest du ja mal bitte den Jenigen Fragen, der dir beim Beispiel geholfen hat? Wäre super! Suche schon so lange nach ner möglichkeit das ganze mit BCB zu compilieren!
größe HookDirect3D.dll: 82.944
größe meine DLL: 90.624
inhalt HookDirect3D.cpp (sample):
Inhalt meinedll cpp:
dort liegt es am game!
Nur das kann hirt doch nicht sein, denn das beispiel geht ja nur in bcb kompiliert nicht mehr!"
Das aufhängen habe ich weg bekommen!
Wenn die die HookDirect3D.dll hooke geht es wunderbar alles in wireframe.
Vielleicht könntest du ja mal bitte den Jenigen Fragen, der dir beim Beispiel geholfen hat? Wäre super! Suche schon so lange nach ner möglichkeit das ganze mit BCB zu compilieren!
größe HookDirect3D.dll: 82.944
größe meine DLL: 90.624
inhalt HookDirect3D.cpp (sample):
Code: Select all
// ***************************************************************
// HookDirect3D.dll version: 1.0 · date: 2004-08-15
// -------------------------------------------------------------
// turns all Direct3D 7-9 games to wireframe mode
// -------------------------------------------------------------
// Copyright (C) 1999 - 2004 www.madshi.net, All Rights Reserved
// ***************************************************************
// 2004-08-15 1.0 initial release
// thanks to Maciej Donotek for his help
// ***************************************************************
#include <windows.h>
#include "madCHook.h"
// ***************************************************************
#define D3DFILL_WIREFRAME 2
#define D3DFILL_SOLID 3
#define D3DRS_FILLMODE 8
const GUID IID_IDirect3D7 = { 0xf5049e77,0x4861,0x11d2, { 0xa4,0x7,0x0,0xa0,0xc9,0x6,0x29,0xa8 } };
// ***************************************************************
PVOID GetInterfaceMethod(PVOID intf, DWORD methodIndex)
{
return *(PVOID*)(*(DWORD*)intf + methodIndex * 4);
}
// ***************************************************************
// Direct3D7
HRESULT (WINAPI *DirectDrawCreateExNext) (PVOID guid, IUnknown** directDraw, PVOID iid, PVOID unkOuter);
HRESULT (WINAPI *CreateDevice7Next) (PVOID self, PVOID classId, PVOID surface, PVOID* device);
HRESULT (WINAPI *SetRenderState7Next) (PVOID self, DWORD stateType, DWORD state);
HRESULT WINAPI SetRenderState7Callback(PVOID self, DWORD stateType, DWORD state)
{
if (stateType == D3DRS_FILLMODE) {
if (state == D3DFILL_WIREFRAME) state = D3DFILL_SOLID;
else state = D3DFILL_WIREFRAME;
}
return SetRenderState7Next(self, stateType, state);
}
HRESULT WINAPI CreateDevice7Callback(PVOID self, PVOID classId, PVOID surface, PVOID* device)
{
HRESULT result = CreateDevice7Next(self, classId, surface, device);
if ( !result && device && *device && !SetRenderState7Next ) {
HookCode(GetInterfaceMethod(*device, 20), SetRenderState7Callback, (PVOID*) &SetRenderState7Next);
SetRenderState7Next(*device, D3DRS_FILLMODE, D3DFILL_WIREFRAME);
}
return result;
}
HRESULT WINAPI DirectDrawCreateExCallback(PVOID guid, IUnknown** directDraw, PVOID iid, PVOID unkOuter)
{
HRESULT result = DirectDrawCreateExNext(guid, directDraw, iid, unkOuter);
IUnknown* d3d7;
if ( !result && !CreateDevice7Next && !(*directDraw)->QueryInterface(IID_IDirect3D7, (PVOID*) &d3d7) ) {
HookCode(GetInterfaceMethod(d3d7, 4), CreateDevice7Callback, (PVOID*) &CreateDevice7Next);
d3d7->Release();
}
return result;
}
BOOL HookDirect3D7()
{
return HookAPI("ddraw.dll", "DirectDrawCreateEx", DirectDrawCreateExCallback, (PVOID*) &DirectDrawCreateExNext);
}
// ***************************************************************
// Direct3D8
PVOID (WINAPI *Direct3DCreate8Next) (DWORD sdkVersion);
HRESULT (WINAPI *CreateDevice8Next) (PVOID self, DWORD adapter, DWORD devType, HWND wnd, DWORD flags, PVOID params, PVOID* device);
HRESULT (WINAPI *SetRenderState8Next) (PVOID self, DWORD stateType, DWORD state);
HRESULT WINAPI SetRenderState8Callback(PVOID self, DWORD stateType, DWORD state)
{
if (stateType == D3DRS_FILLMODE) {
if (state == D3DFILL_WIREFRAME) state = D3DFILL_SOLID;
else state = D3DFILL_WIREFRAME;
}
return SetRenderState8Next(self, stateType, state);
}
HRESULT WINAPI CreateDevice8Callback(PVOID self, DWORD adapter, DWORD devType, HWND wnd, DWORD flags, PVOID params, PVOID* device)
{
HRESULT result = CreateDevice8Next(self, adapter, devType, wnd, flags, params, device);
if ( !result && device && *device && !SetRenderState8Next ) {
HookCode(GetInterfaceMethod(*device, 50), SetRenderState8Callback, (PVOID*) &SetRenderState8Next);
SetRenderState8Next(*device, D3DRS_FILLMODE, D3DFILL_WIREFRAME);
}
return result;
}
PVOID WINAPI Direct3DCreate8Callback(DWORD sdkVersion)
{
PVOID result = Direct3DCreate8Next(sdkVersion);
if ( result && !CreateDevice8Next )
HookCode(GetInterfaceMethod(result, 15), CreateDevice8Callback, (PVOID*) &CreateDevice8Next);
return result;
}
BOOL HookDirect3D8()
{
return HookAPI("d3d8.dll", "Direct3DCreate8", Direct3DCreate8Callback, (PVOID*) &Direct3DCreate8Next);
}
// ***************************************************************
// Direct3D9
PVOID (WINAPI *Direct3DCreate9Next) (DWORD sdkVersion);
HRESULT (WINAPI *CreateDevice9Next) (PVOID self, DWORD adapter, DWORD devType, HWND wnd, DWORD flags, PVOID params, PVOID* device);
HRESULT (WINAPI *SetRenderState9Next) (PVOID self, DWORD stateType, DWORD state);
HRESULT WINAPI SetRenderState9Callback(PVOID self, DWORD stateType, DWORD state)
{
if (stateType == D3DRS_FILLMODE) {
if (state == D3DFILL_WIREFRAME) state = D3DFILL_SOLID;
else state = D3DFILL_WIREFRAME;
}
return SetRenderState9Next(self, stateType, state);
}
HRESULT WINAPI CreateDevice9Callback(PVOID self, DWORD adapter, DWORD devType, HWND wnd, DWORD flags, PVOID params, PVOID* device)
{
HRESULT result = CreateDevice9Next(self, adapter, devType, wnd, flags, params, device);
if ( !result && device && *device && !SetRenderState9Next ) {
HookCode(GetInterfaceMethod(*device, 57), SetRenderState9Callback, (PVOID*) &SetRenderState9Next);
SetRenderState9Next(*device, D3DRS_FILLMODE, D3DFILL_WIREFRAME);
}
return result;
}
PVOID WINAPI Direct3DCreate9Callback(DWORD sdkVersion)
{
PVOID result = Direct3DCreate9Next(sdkVersion);
if ( result && !CreateDevice9Next )
HookCode(GetInterfaceMethod(result, 16), CreateDevice9Callback, (PVOID*) &CreateDevice9Next);
return result;
}
BOOL HookDirect3D9()
{
return HookAPI("d3d9.dll", "Direct3DCreate9", Direct3DCreate9Callback, (PVOID*) &Direct3DCreate9Next);
}
// ***************************************************************
BOOL WINAPI DllMain(HANDLE hModule, DWORD fdwReason, LPVOID lpReserved)
{
if (fdwReason == DLL_PROCESS_ATTACH) {
// InitializeMadCHook is needed only if you're using the static madCHook.lib
InitializeMadCHook();
HookDirect3D7();
HookDirect3D8();
HookDirect3D9();
} else if (fdwReason == DLL_PROCESS_DETACH)
// FinalizeMadCHook is needed only if you're using the static madCHook.lib
FinalizeMadCHook();
return true;
}
Code: Select all
// ***************************************************************
// HookDirect3D.dll version: 1.0 · date: 2004-08-15
// -------------------------------------------------------------
// turns all Direct3D 7-9 games to wireframe mode
// -------------------------------------------------------------
// Copyright (C) 1999 - 2004 www.madshi.net, All Rights Reserved
// ***************************************************************
// 2004-08-15 1.0 initial release
// thanks to Maciej Donotek for his help
// ***************************************************************
#include <windows.h>
#include "madCodeHook.hpp"
#pragma link "madCodeHook"
#pragma link "madRemote"
#pragma link "madTools"
#pragma link "madTypes"
#pragma link "madStrings"
#pragma link "maddisasm"
// ***************************************************************
#define D3DFILL_WIREFRAME 2
#define D3DFILL_SOLID 3
#define D3DRS_FILLMODE 8
// ***************************************************************
#define D3DFILL_WIREFRAME 2
#define D3DFILL_SOLID 3
#define D3DRS_FILLMODE 8
const GUID IID_IDirect3D7 = { 0xf5049e77,0x4861,0x11d2, { 0xa4,0x7,0x0,0xa0,0xc9,0x6,0x29,0xa8 } };
// ***************************************************************
PVOID GetInterfaceMethod(PVOID intf, DWORD methodIndex)
{
return *(PVOID*)(*(DWORD*)intf + methodIndex * 4);
}
// ***************************************************************
// Direct3D7
HRESULT (WINAPI *DirectDrawCreateExNext) (PVOID guid, IUnknown** directDraw, PVOID iid, PVOID unkOuter);
HRESULT (WINAPI *CreateDevice7Next) (PVOID self, PVOID classId, PVOID surface, PVOID* device);
HRESULT (WINAPI *SetRenderState7Next) (PVOID self, DWORD stateType, DWORD state);
HRESULT WINAPI SetRenderState7Callback(PVOID self, DWORD stateType, DWORD state)
{
if (stateType == D3DRS_FILLMODE) {
if (state == D3DFILL_WIREFRAME) state = D3DFILL_SOLID;
else state = D3DFILL_WIREFRAME;
}
return SetRenderState7Next(self, stateType, state);
}
HRESULT WINAPI CreateDevice7Callback(PVOID self, PVOID classId, PVOID surface, PVOID* device)
{
HRESULT result = CreateDevice7Next(self, classId, surface, device);
if ( !result && device && *device && !SetRenderState7Next ) {
HookCode(GetInterfaceMethod(*device, 20), SetRenderState7Callback, (PVOID*) &SetRenderState7Next);
SetRenderState7Next(*device, D3DRS_FILLMODE, D3DFILL_WIREFRAME);
}
return result;
}
HRESULT WINAPI DirectDrawCreateExCallback(PVOID guid, IUnknown** directDraw, PVOID iid, PVOID unkOuter)
{
HRESULT result = DirectDrawCreateExNext(guid, directDraw, iid, unkOuter);
IUnknown* d3d7;
if ( !result && !CreateDevice7Next && !(*directDraw)->QueryInterface(IID_IDirect3D7, (PVOID*) &d3d7) ) {
HookCode(GetInterfaceMethod(d3d7, 4), CreateDevice7Callback, (PVOID*) &CreateDevice7Next);
d3d7->Release();
}
return result;
}
BOOL HookDirect3D7()
{
return HookAPI("ddraw.dll", "DirectDrawCreateEx", DirectDrawCreateExCallback, (PVOID*) &DirectDrawCreateExNext);
}
// ***************************************************************
// Direct3D8
PVOID (WINAPI *Direct3DCreate8Next) (DWORD sdkVersion);
HRESULT (WINAPI *CreateDevice8Next) (PVOID self, DWORD adapter, DWORD devType, HWND wnd, DWORD flags, PVOID params, PVOID* device);
HRESULT (WINAPI *SetRenderState8Next) (PVOID self, DWORD stateType, DWORD state);
HRESULT WINAPI SetRenderState8Callback(PVOID self, DWORD stateType, DWORD state)
{
if (stateType == D3DRS_FILLMODE) {
if (state == D3DFILL_WIREFRAME) state = D3DFILL_SOLID;
else state = D3DFILL_WIREFRAME;
}
return SetRenderState8Next(self, stateType, state);
}
HRESULT WINAPI CreateDevice8Callback(PVOID self, DWORD adapter, DWORD devType, HWND wnd, DWORD flags, PVOID params, PVOID* device)
{
HRESULT result = CreateDevice8Next(self, adapter, devType, wnd, flags, params, device);
if ( !result && device && *device && !SetRenderState8Next ) {
HookCode(GetInterfaceMethod(*device, 50), SetRenderState8Callback, (PVOID*) &SetRenderState8Next);
SetRenderState8Next(*device, D3DRS_FILLMODE, D3DFILL_WIREFRAME);
}
return result;
}
PVOID WINAPI Direct3DCreate8Callback(DWORD sdkVersion)
{
PVOID result = Direct3DCreate8Next(sdkVersion);
if ( result && !CreateDevice8Next )
HookCode(GetInterfaceMethod(result, 15), CreateDevice8Callback, (PVOID*) &CreateDevice8Next);
return result;
}
BOOL HookDirect3D8()
{
return HookAPI("d3d8.dll", "Direct3DCreate8", Direct3DCreate8Callback, (PVOID*) &Direct3DCreate8Next);
}
// ***************************************************************
// Direct3D9
PVOID (WINAPI *Direct3DCreate9Next) (DWORD sdkVersion);
HRESULT (WINAPI *CreateDevice9Next) (PVOID self, DWORD adapter, DWORD devType, HWND wnd, DWORD flags, PVOID params, PVOID* device);
HRESULT (WINAPI *SetRenderState9Next) (PVOID self, DWORD stateType, DWORD state);
HRESULT WINAPI SetRenderState9Callback(PVOID self, DWORD stateType, DWORD state)
{
if (stateType == D3DRS_FILLMODE) {
if (state == D3DFILL_WIREFRAME) state = D3DFILL_SOLID;
else state = D3DFILL_WIREFRAME;
}
return SetRenderState9Next(self, stateType, state);
}
HRESULT WINAPI CreateDevice9Callback(PVOID self, DWORD adapter, DWORD devType, HWND wnd, DWORD flags, PVOID params, PVOID* device)
{
HRESULT result = CreateDevice9Next(self, adapter, devType, wnd, flags, params, device);
if ( !result && device && *device && !SetRenderState9Next ) {
HookCode(GetInterfaceMethod(*device, 57), SetRenderState9Callback, (PVOID*) &SetRenderState9Next);
SetRenderState9Next(*device, D3DRS_FILLMODE, D3DFILL_WIREFRAME);
}
return result;
}
PVOID WINAPI Direct3DCreate9Callback(DWORD sdkVersion)
{
PVOID result = Direct3DCreate9Next(sdkVersion);
if ( result && !CreateDevice9Next )
HookCode(GetInterfaceMethod(result, 16), CreateDevice9Callback, (PVOID*) &CreateDevice9Next);
return result;
}
BOOL HookDirect3D9()
{
return HookAPI("d3d9.dll", "Direct3DCreate9", Direct3DCreate9Callback, (PVOID*) &Direct3DCreate9Next);
}
// ***************************************************************
BOOL WINAPI DllMain(HANDLE hModule, DWORD fdwReason, LPVOID lpReserved)
{
if (fdwReason == DLL_PROCESS_ATTACH) {
// InitializeMadCHook is needed only if you're using the static madCHook.lib
//HookDirect3D7(); //don't use because error on all DX apps!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
HookDirect3D8();
HookDirect3D9();
} else if (fdwReason == DLL_PROCESS_DETACH)
// FinalizeMadCHook is needed only if you're using the static madCHook.lib
return true;
}
Also, das Problem ist noch nicht gelöst.
Mit der im Beispiel vorhandenen DLL für DirectX 7-9 kann ich jeder beliebigen DirectX Anwendung hooken und somit dort den Wireframe-Modus aktivieren.
Mit meiner in BCB6 selbstkompiliert DLL nicht.
Diese funktioniert zwar insoweit, dass sie DirectX erkennt und einen Ton ausgibt, den Wireframe-Modus aktiviert sie allerdinks nicht.
Ausserdem möchte ich nicht den Wireframe-Modus deaktivieren, sondern Mehrere Strings und Grafiken in der DirectX-Anwendung ausgeben.
Schade, dass die Beispiel-DLL (HookDirect3D.dll), die wunderbar funktioniert als
- HookDirect3D.dpr (delphi-projekt)
und
- HookDirect3D.vcproj (vc++-projekt)
vorliegt nur halt nicht für BCB, das ist schade!
Wäre echt genial, wenn das Jemand mal übersetzen könnte! Ich kann es nicht.
Der Hook läuft, erkennt DirectX, kann jedoch nicht eingreifen.
Danke ^^
Mit der im Beispiel vorhandenen DLL für DirectX 7-9 kann ich jeder beliebigen DirectX Anwendung hooken und somit dort den Wireframe-Modus aktivieren.
Mit meiner in BCB6 selbstkompiliert DLL nicht.
Diese funktioniert zwar insoweit, dass sie DirectX erkennt und einen Ton ausgibt, den Wireframe-Modus aktiviert sie allerdinks nicht.
Ausserdem möchte ich nicht den Wireframe-Modus deaktivieren, sondern Mehrere Strings und Grafiken in der DirectX-Anwendung ausgeben.
Schade, dass die Beispiel-DLL (HookDirect3D.dll), die wunderbar funktioniert als
- HookDirect3D.dpr (delphi-projekt)
und
- HookDirect3D.vcproj (vc++-projekt)
vorliegt nur halt nicht für BCB, das ist schade!
Wäre echt genial, wenn das Jemand mal übersetzen könnte! Ich kann es nicht.
Der Hook läuft, erkennt DirectX, kann jedoch nicht eingreifen.
Danke ^^
Guck mal hier rein:
viewtopic.php?t=462&highlight=bcb
Statt "(PVOID*) &Direct3DCreate8Next" gib mal "(PVOID) Direct3DCreate8Next" rein.
viewtopic.php?t=462&highlight=bcb
Statt "(PVOID*) &Direct3DCreate8Next" gib mal "(PVOID) Direct3DCreate8Next" rein.
Danke danke jetzt geht es! Das war der Knackpunkt
(PVOID) SetRenderState8Next
(PVOID) CreateDevice8Next
(PVOID) Direct3DCreate8Next
dort musste überall das * und das & weggemacht werden ^^ Fanstastisch!
Aber wie zeichne ich jetzt auf den Bildschirm mit DirectDraw?
Ich schaue mich mal um!
Aber danke du hast mich bedeutend weiter gebracht super !
(PVOID) SetRenderState8Next
(PVOID) CreateDevice8Next
(PVOID) Direct3DCreate8Next
dort musste überall das * und das & weggemacht werden ^^ Fanstastisch!
Aber wie zeichne ich jetzt auf den Bildschirm mit DirectDraw?
Ich schaue mich mal um!
Aber danke du hast mich bedeutend weiter gebracht super !
Mist habe nichts gefunden *g* aber ich habe auf einem Delphi Board gelsen, dass jemand deine Lib für ne Statistikanzeige in GTA Vice City benutzt.
Könntest du vielleicht mal das DirectDraw Sample Posten?
Danke ^^
Hier ist eine Liste mit Befehlen.
http://www.hi.is/~snorri/097111-97/SDK-docs/x/
#define D3DFILL_WIREFRAME 2
#define D3DRS_FILLMODE 8
D3DRS_FILLMODE (8) kann ich ja auf D3DFILL_WIREFRAME (2) setzen
aber woher weiss ich, das fillmode 8 und wireframe 2 ist? o.O
Könntest du vielleicht mal das DirectDraw Sample Posten?
Danke ^^
Hier ist eine Liste mit Befehlen.
http://www.hi.is/~snorri/097111-97/SDK-docs/x/
#define D3DFILL_WIREFRAME 2
#define D3DRS_FILLMODE 8
D3DRS_FILLMODE (8) kann ich ja auf D3DFILL_WIREFRAME (2) setzen
aber woher weiss ich, das fillmode 8 und wireframe 2 ist? o.O
Hier schon mal was für alle die das gleiche suchen ^^
Hier gibts noch mehr:
http://www.minfos.de/selfdxd/DirectXGra ... etype.html
was aber nicht beim zeichnen eines Strings helfen sollte ;(
Const D3DRS_ANTIALIAS = 2 ; D3DANTIALIASMODE */
Const D3DRS_TEXTUREPERSPECTIVE = 4 ; True For perspective correction */
Const D3DRS_ZENABLE = 7 ; D3DZBUFFERTYPE (Or True/False For legacy) */
Const D3DRS_FILLMODE = 8 ; D3DFILL_MODE */
Const D3DRS_SHADEMODE = 9 ; D3DFILL_MODE */
Const D3DRS_LINEPATTERN = 10 ; D3DLINEPATTERN */
Const D3DRS_ZWRITEENABLE = 14 ; True To enable z writes */
Const D3DRS_ALPHATESTENABLE = 15 ; True To enable alpha tests */
Const D3DRS_LASTPIXEL = 16 ; True For Last-pixel on lines */
Const D3DRS_SRCBLEND = 19 ; D3DBLEND */
Const D3DRS_DESTBLEND = 20 ; D3DBLEND */
Const D3DRS_CULLMODE = 22 ; D3DCULL */
Const D3DRS_ZFUNC = 23 ; D3DCMPFUNC */
Const D3DRS_ALPHAREF = 24 ; D3DFIXED (long) */
Const D3DRS_ALPHAFUNC = 25 ; D3DCMPFUNC */
Const D3DRS_DITHERENABLE = 26 ; True To enable dithering */
Const D3DRS_ALPHABLENDENABLE = 27 ; True To enable alpha blending */
Const D3DRS_FOGENABLE = 28 ; True To enable fog blending */
Const D3DRS_SPECULARENABLE = 29 ; True To enable specular */
Const D3DRS_ZVISIBLE = 30 ; True To enable z checking */
Const D3DRS_STIPPLEDALPHA = 33 ; True To enable stippled alpha (RGB device only) */
Const D3DRS_FOGCOLOR = 34 ; D3DCOLOR */ INT (((a) << 24) Or ((r) << 16) Or ((g) << Or (b)))
Const D3DRS_FOGTABLEMODE = 35 ; D3DFOGMODE */
Const D3DRS_FOGSTART = 36 ; Float Fog start (For both vertex And pixel fog)
Const D3DRS_FOGEND = 37 ; Float Fog End */
Const D3DRS_FOGDENSITY = 38 ; Fog density */
Const D3DRS_EDGEANTIALIAS = 40 ; True To enable edge antialiasing */
Const D3DRS_COLORKEYENABLE = 41 ; True To enable source colorkeyed textures */
Const D3DRS_ZBIAS = 47 ; LONG Z bias */
Const D3DRS_RANGEFOGENABLE = 48 ; Enables range-based fog */
Hier gibts noch mehr:
http://www.minfos.de/selfdxd/DirectXGra ... etype.html
was aber nicht beim zeichnen eines Strings helfen sollte ;(
Also ich denke, dass ich es mit DirectDraw hooken muss, da Direct3D gar keinen Text ausgeben kann
Wie schon gesagt könntest du mir das DirectDraw Sample mal zuschicken?
djdaple@web.de ^^
Wie schon gesagt könntest du mir das DirectDraw Sample mal zuschicken?
djdaple@web.de ^^
Ja das stimmt schon aus einer textur schneidet sich das spiel dann die zeichen aus und setzt sie hintereinander.
Aber wie realisiere ich das mit dxhook?
Hab enoch ein Problem, sobald ich nur versuche zu hooken (ohne jetzt was am spiel zu ändern) sprich nur die device des directx8 zu erstellen flieg ich aus dem spiel raus nach dem laden. (hradba anti-cheat)
bei Fraps allerdings wird der counter immer angezeigt. Die Frapsdll ist auch nur 40 kb groß o.O
Fraps.com
Aber wie realisiere ich das mit dxhook?
Hab enoch ein Problem, sobald ich nur versuche zu hooken (ohne jetzt was am spiel zu ändern) sprich nur die device des directx8 zu erstellen flieg ich aus dem spiel raus nach dem laden. (hradba anti-cheat)
bei Fraps allerdings wird der counter immer angezeigt. Die Frapsdll ist auch nur 40 kb groß o.O
Fraps.com