Wrapper für S7Onlinx.dll probleme

Jochen Kühner

Level-3
Beiträge
4.291
Reaktionspunkte
527
Zuviel Werbung?
-> Hier kostenlos registrieren
Habe mir eine WrapperDll geschrieben um die Kommunikation über s7onlinx.dll zu beobachten. Ich habe nur 2 funktion gewrappt, die restlichen werden direkt noch aufgerufen. bei scp_open schreibt er den string in mein logfile, doch bei send steht nichts in meinem logfile...
Code:
// SCP_open
extern "C" int __stdcall __E__9__(char* a)
	{
    
	 FILE* datei;
	 datei = fopen("c:\\log.txt","a");
	 fprintf(datei,"open: %s\r\n",a);
	 fclose(datei);

     typedef int (__stdcall *pS)(char*);
     pS pps = (pS)p[9];
     int rv = pps(a);

     return rv;
	}


// SCP_send
extern "C" int __stdcall __E__13__(int a, UWORD b, const  char* c)
	{
    
	 FILE* datei;
	 datei = fopen("c:\\log.txt","a");
	 fprintf(datei,"send: len: %i zeichen: %s\r\n",b,c);
	 
	 fclose(datei);

     typedef int (__stdcall *pS)(int, UWORD, char*);
     pS pps = (pS)p[13];
     int rv = pps(a, b, c);

     return rv;
	}
 
bin bei scp_send nun dazu übergegengen den 2ten parameter als länge für den string zu verwenden und damit den char pointer hochzuzählen, aber irgendwie stehen doch nur 00 werte in meiner log.txt...

noch einer ideen??
 
Zuviel Werbung?
-> Hier kostenlos registrieren
So...

Ich denke mal Ich kann das hier als gelöst markieren, es scheint nun zu gehen. Ich glaube Ich dachte da fast nur nullen im Textfile ware das kann nicht sein, aber anscheindend müssen der scp_send funktion soviel werte übergeben werden welche nicht gebraucht werden und daher 0 sind. daher muss man auch jedes zeichen einzeln ausgeben, da ja ein C-String mit einer 0 als zeichen nicht weiter ausgegeben wird!
 
Zurück
Oben