3 回答
示例文件显然旨在编译为 C,而不是 C++。强制转换rbuf = tclistval(res, i, &rsiz);
( rbuf
is 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++ 中,您可能需要将它们包围起来。
Tokyocabinet 看起来像交流图书馆。在 c 中,您可以将任何类型的指针强制转换为 (void *) 和 (void *) 到任何类型。像这样:
int *array = malloc(10*sizeof(int));
在 c++ 中,这是禁止的,您必须手动转换:
int *array = (int *)malloc(10*sizeof(int));
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