-1
4

3 回答 3

2

示例文件显然旨在编译为 C,而不是 C++。强制转换rbuf = tclistval(res, i, &rsiz);( rbufis of type const char*) 在 C 中有效,但在 C++ 中,您需要明确。似乎您设置了 Eclipse 以将源文件编译为 C++ - 如果强制转换是您得到的唯一错误,您可以像这样解决它:

rbuf = (const char*)tclistval(res, i, &rsiz); // explicit cast to const char*

或者更改您的设置以编译为 C。

extern C { ... }如果 Tokyo Cabinet 头文件本身不支持包含在 C++ 中,您可能需要将它们包围起来。

于 2010-10-14T07:17:33.323 回答
1

Tokyocabinet 看起来像交流图书馆。在 c 中,您可以将任何类型的指针强制转换为 (void *) 和 (void *) 到任何类型。像这样:

int *array = malloc(10*sizeof(int));

在 c++ 中,这是禁止的,您必须手动转换:

int *array = (int *)malloc(10*sizeof(int));
于 2010-10-14T06:32:11.093 回答
1

you are trying to fill in one of the columns(char*) in your functions which is of type void* , if you see line at which this error is coming, you will get to know where you are doing.

This is generic c++ error, nothing to do with tokyocabinet, this is what I believe.

-- Cheers

于 2010-10-14T06:22:28.433 回答