# Wrapper für S7Onlinx.dll probleme



## Jochen Kühner (20 Mai 2010)

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...

```
// 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;
	}
```


----------



## Jochen Kühner (25 Mai 2010)

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??


----------



## Jochen Kühner (27 Mai 2010)

*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!


----------

