私はW3btrv7.dllの非常に簡単な置き換えを書いて、Btrieve API呼び出しを別のライブラリ(.NETで書かれ、COM経由で呼び出される)に渡すことができます。基本的には、CでBTRCALL関数のシグネチャを模倣する必要があります。しかし、私はCプログラマではありません。私は関数をエクスポートするDLLを書く方法についてかなり良い考えがあると思うが、それを超えて、私は失われている。C DLLの置き換えを記述していますか?
基本的なシグネチャは次のようになります。
int BTRCALL(Operation Code, Position Block, Data Buffer, Data Buffer Length,
Key Buffer, Key Buffer Length, Key Number)
オペレーションコード - 整数
ポジションブロックから128バイト配列
データバッファ - 私は見つけることができませんこれについては多くの詳細がありますが、データバッファ長パラメータで長さが指定されたバイト配列であると仮定します。
データバッファーの長さ - ここでも、あまり情報はありませんが、前のバイト配列の長さを指定する整数と見なします。
キーバッファ - 以前バイト配列
キー番号の長さ - - 255バイト
キーバッファ長の最大サイズがバイト配列2バイト整数
誰もこの署名と一致するCの関数を提案できますか?
types.hを含めるのを避けたい場合は、int16_tの代わりにshort型(またはunsigned short型)を使用できます。 – cedrou
@cedrou shortは、少なくとも* 2バイト以上で、intより大きくないことが保証されていますが、*正確に* 2バイトであることは保証されていません。 –
完璧!ありがとう! –