dll-aufrufe protokollieren

24/10/2008 - 10:39 von juergenschildmann | Report spam
Hi,
ich habe eine dll, die ccd-cameras ansteuert und nutze die in meinem
C# programm.
jetzt habe ich eine spezielle kamera, die scheinbar außer der norm
angesteuert wird aber mit hilfe dieser win32-dll.
nun habe ich mir gedacht, dass man doch eine zusàtzliche dll schreiben
könnte, die genau so heißt und auch die gleichen funktionen aufweißt,
die aufrufe vom funktionierenden programm protokolliert und die
originalen dll-aufrufe weiterleitet und zurückgibt.

ist sowas möglich?

gruß,
jürgen
 

Lesen sie die antworten

#1 Martin S
23/11/2008 - 13:20 | Warnen spam
Ja, das ist möglich. wie das in C# geht kann ich die nicht sagen, aber
so würde ich das in c++ machen:

dll-projekt anlegen mit der geforderten funktion signatur

dll-main.cpp:

int _export ccd_cameras_func(type param1, type param2, ...)
{
static int init;
static HINSTANCE hlib;
static CCDFUNC hproc;

if (init == false)
{
hlib = LoadLibrary("path\original-ccd-cameras.dll");
// fehlerbehandlung

hproc = GetProcAdress(hlib, "_ccd_cameras_func");
// fehlerbehandlung

ini = true;
}

protocol("before call, param1=");

int rc = hproc(param1, param2, ...);

protocol("after call, result=%d", rc);
}

ist natürlich nur ein fahrplan - die signatur bekommst du beispielsweise
mit "dependency walker (depends.exe)" raus. oder mit impdll von borland.

Gruss, Martin


schrieb:
Hi,
ich habe eine dll, die ccd-cameras ansteuert und nutze die in meinem
C# programm.
jetzt habe ich eine spezielle kamera, die scheinbar außer der norm
angesteuert wird aber mit hilfe dieser win32-dll.
nun habe ich mir gedacht, dass man doch eine zusàtzliche dll schreiben
könnte, die genau so heißt und auch die gleichen funktionen aufweißt,
die aufrufe vom funktionierenden programm protokolliert und die
originalen dll-aufrufe weiterleitet und zurückgibt.

ist sowas möglich?

gruß,
jürgen

Ähnliche fragen