1

Btrieve API 呼び出しを別のライブラリ (.NET で記述され、COM 経由で呼び出される) に渡すことができるように、w3btrv7.dll の非常に単純な代替を記述したいと考えています。基本的に、C の BTRCALL 関数のシグネチャを模倣する必要があります。しかし、私は C プログラマーではありません... まったく。関数をエクスポートする DLL を作成する方法についてはかなり良い考えを持っていると思いますが、それ以上はわかりません。

基本的な署名は次のようになります。

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

操作コード- 整数

位置ブロック- 128 バイト配列

データ バッファー- これに関する詳細はあまりわかりませんが、データ バッファー長パラメーターで指定された長さのバイト配列だと思います。

Data Buffer Length - 繰り返しますが、多くの情報はありませんが、これは以前のバイト配列の長さを指定する整数であると想定しています。

キー バッファ- 最大サイズが 255 バイトのバイト配列

Key Buffer Length - 前のバイト配列の長さ

キー番号- 2 バイト整数

この署名に一致する C の関数を提案できる人はいますか?

4

1 に答える 1

0
#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)

正確に 2 バイト (符号付き) の整数を指定する int16_t 型を取得するには、types.h インクルードが必要です。

配列にサイズが指定されていないことに注意してください。そのため、サイズを別のパラメーターにするか、先験的に知る必要があります (pos_block の場合と同様)。

于 2009-08-16T18:22:37.830 に答える