1

我想为 w3btrv7.dll 编写一个非常简单的替代品,这样我就可以将 Btrieve API 调用传递给另一个库(用 .NET 编写并通过 COM 调用)。基本上,我需要在 C 中模仿 BTRCALL 函数的签名。但是,我根本不是 C 程序员……。我想我对如何编写导出函数的 DLL 有一个很好的想法,但除此之外,我迷路了。

基本签名如下所示:

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

操作码- 整数

位置块- 128 字节数组

数据缓冲区- 我找不到有关此的许多详细信息,但我假设它是一个字节数组,其长度由数据缓冲区长度参数指定。

数据缓冲区长度- 同样,没有太多信息,但我假设这是一个指定前一个字节数组长度的整数。

Key Buffer - 最大大小为 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)

您需要 types.h 包括来获取 int16_t 类型,该类型指定了一个精确的 2 字节(有符号)整数。

请注意数组没有指定大小,这就是为什么大小必须在单独的参数中或先验已知的原因(与 pos_block 一样)。

于 2009-08-16T18:22:37.830 回答