Frage

Ich möchte einen sehr einfachen Ersatz für W3BTRV7.dll schreiben, damit ich Btrieve -API -Anrufe an eine andere Bibliothek weitergeben kann (geschrieben in .NET und über COM genannt). Grundsätzlich muss ich die Signatur der Btrcall -Funktion in C nachahmen, aber ich bin überhaupt kein C -Programmierer ... überhaupt. Ich denke, ich habe eine ziemlich gute Vorstellung davon, wie man eine DLL schreibt, die exportiert, aber darüber hinaus bin ich verloren.

Die grundlegende Signatur sieht folgt aus:

int BTRCALL(Operation Code, Position Block, Data Buffer, Data Buffer Length, 
        Key Buffer, Key Buffer Length, Key Number)

Betriebscode - Ganzzahl

Positionsblock - 128 Byte -Array

Datenpuffer - Ich kann nicht viele Details dazu finden, aber ich gehe davon aus, dass es sich um ein Byte -Array handelt, dessen Länge durch den Parameter der Datenpufferlänge angegeben ist.

Datenpufferlänge - Auch nicht viele Informationen, aber ich gehe davon aus, dass dies eine Ganzzahl ist, die die Länge des vorherigen Byte -Arrays angibt.

Schlüsselpuffer - Ein Byte -Array mit einer maximalen Größe von 255 Bytes

Schlüsselpufferlänge - Die Länge des vorherigen Byte -Arrays

Schlüsselnummer - 2-Byte-Ganzzahl

Kann jemand eine Funktion in C vorschlagen, die dieser Signatur entspricht?

War es hilfreich?

Lösung

#include <types.h>
int BTRCALL(int op_code, char pos_block[], char data_buf[], int data_buf_len, char key_buf[], int key_buf_len, int16_t key_num)

Sie benötigen die Typen.

Beachten Sie, wie die Arrays keine Größe angegeben haben. Deshalb müssen sich die Größen in einem separaten Parameter oder a priori (wie bei POS_BLOCK) befinden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top