worm_info_tseSerialNumber ( const WormInfo * info, const unsigned char ** serialNumber, worm_uint * ;
serialNumberLength )
Das Problem ist der char** -Pointer für die Seriennummer. Ich habe schon vieles versucht. Ich rufe die Funktion über EXTERN auf
EXTERN CDECL worm_info_tseSerialNumber(info AS INTEGER64, @serialNumber AS INTEGER64 , serialNumberLength as integer );
in WormAPI.dll // habe es auch mit @serialNumber AS String versucht.
Hier der eigentliche Funktionsaufruf:
local serialnumber:=space(32) //sie ist 32 Byte lang
local nsernumberlng, npointer, sernrLng
npointer:=_pgrab(serialnumber, @sernrLng) //CHARPointer aus ot4xb
//npointer ist eine Zah und sernrLng ist 32+1
xvar:= worm_info_tseSerialNumber(info, @npointer, nsernumberlng ) //info ist vorher durch info_new() und info_read()
//initialisiert und funktioniert bei anderen Info-Funktionen
ERgebnis Programmabsturz mit folgenden Fehlern:Internal data structures corrupted, :gencode 41:subcode5
VALTYPE: C VALUE: _DLL
-> VALTYPE: N VALUE: 6426768 //der Wert von info
//wird der Pointer mit Referenz als Integer64 oder String übergeben dann
->Valtype: N 32
//-> VALTYPE: N VALUE: 1934375456 //Pointerwert bei Übergabe ohne Referenz
-> VALTYPE: N VALUE: 32 //Seriennummernlänge
Ich weiß nicht mehr weiter! Hat jemand eine Idee? An diesem Problem könnte mein TSE-Einbindung scheitern!
aus allgemeine Fragen hat geschrieben: TSE-Kasse Pointer in C-Funktionen Swissbit
#1 Beitrag von miwe-pos » Do, 05. Mär 2020 23:53
In den Funktionen von Swissbit-TSE in der wormApi.dll werden an mancher Stelle Pointer verlangt. Beisp.:
worm_info_tseSerialNumber ( const WormInfo * info, const unsigned char ** serialNumber, worm_uint * ;
serialNumberLength )
Das Problem ist der char** -Pointer für die Seriennummer. Ich habe schon vieles versucht. Ich rufe die Funktion über EXTERN auf
EXTERN CDECL worm_info_tseSerialNumber(info AS INTEGER64, @serialNumber AS INTEGER64 , serialNumberLength as integer );
in WormAPI.dll // habe es auch mit @serialNumber AS String versucht.
Hier der eigentliche Funktionsaufruf:
local serialnumber:=space(32) //sie ist 32 Byte lang
local nsernumberlng, npointer, sernrLng
npointer:=_pgrab(serialnumber, @sernrLng) //CHARPointer aus ot4xb
//npointer ist eine Zah und sernrLng ist 32+1
xvar:= worm_info_tseSerialNumber(info, @npointer, nsernumberlng ) //info ist vorher durch info_new() und info_read()
//initialisiert und funktioniert bei anderen Info-Funktionen
ERgebnis Programmabsturz mit folgenden Fehlern:Internal data structures corrupted, :gencode 41:subcode5
VALTYPE: C VALUE: _DLL
-> VALTYPE: N VALUE: 6426768 //der Wert von info
//wird der Pointer mit Referenz als Integer64 oder String übergeben dann
->Valtype: N 32
//-> VALTYPE: N VALUE: 1934375456 //Pointerwert bei Übergabe ohne Referenz
-> VALTYPE: N VALUE: 32 //Seriennummernlänge
Ich weiß nicht mehr weiter! Hat jemand eine Idee? An diesem Problem könnte mein TSE-Einbindung scheitern!
Nach oben