Hallo,
wir haben eine Inkjetdrucker der Firma REAJET an einer Produktionslinen.
Ich möchte die Ansteuerung gerne in ein vorhandenes Delphiprojekt integrieren. (Delphi XE7)
Die Firma REAJET stell eine API-DLL zu Verfügung.
Jetzt habe ich das problem, dass ich nur eine Headerdatei für VC++ zu Verfügung habe.
Ich habe jetzt angefangen die Headerdatei für Delphi umzubauen.
Die folgenden 4 Funktionen habe ich auch schon zum Laufen bekommen.
Quelltext
1: 2: 3: 4: 5:
| VC++ REAPI_DLL const char* REAPI_LibInfo( ); REAPI_DLL const char* REAPI_GetRevision( ); EAPI_DLL TConnectionId REAPI_Connect( const char* connectionString );// Connection address string REAPI_DLL TErrorCode REAPI_Disconnect( TConnectionId connection );// Connection id returned by REAPI_connect |
Jetzt habe ich ein Problem mit der nächsten Funktion:
Quelltext
1: 2: 3:
| VC++ REAPI_DLL TErrorCode REAPI_RegisterConnectionCallback( C_connectionCallbackPtr callback, // Callback for asynchronous mode void* context ); //Helper Context pointer |
Hier muss ein Pointer auf eine Callbackfunktion übergeben werden.
In VC++ würde das ganez so aussehen.
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| //Die Callbackroutine
void REAPI onConnectionChanged(TConnectionId con, TConStatus statusID, TErrorCode error, void * context) { { printf("Connected\n"); GlobalConnectionId = con; } else { printf("Connection failed\n"); } } /*Register ConnectionCallback function in asynchronous mode*/ REAPI_RegisterConnectionCallback ( & onConnectionChange, &mycontext); |
Quelltext
1: 2: 3:
| //Die Registrierung der Callbackroutine
tmperror = REAPI_RegisterConnectionCallback( &onConnectionChanged, 0 ); |
Wie kann ich das ganze jetzt auf Delphi Portieren?
Vielen Dank schon mal!