【发布时间】:2015-07-14 11:51:56
【问题描述】:
这几天我写了一个 C++ 接口供 kdb+ 调用。在我的 cpp 文件中,我将函数定义如下:
enter extern "C" K printInfo(K firstName, K secondName, K age)
{
if (firstName->t != -KS || secondName->t != -KS || age->t != -KJ) {
printf("Invalid params\n");
return krr("Invalid params");
}
printf("firstName:%s\tsecondName:%s\tage:%ld", firstName->s, secondName->s, age->j);
return (K)0;
}
我把它编译成一个dll后,我写了一个q脚本文件来调用它。代码如下:
/ from the DLL mymoving load the functions and assign to named variables
/ The 2: is used for loading
/ 3 at the end specifies the number of arguments
printInfo:`myPrint 2:(`printInfo;3)
printInfo["yunfeng";"zhou";23]
/ printInfo[`yunfeng;`zhou;23]
但是,它没有用。我尝试了 google 和kx web 端来解决这个问题,我所做的一切都是徒劳的。
【问题讨论】:
-
你能详细说明“没有工作”吗?有任何错误消息或症状吗?
-
你不能只将字符串转换为符号吗?您的 c++ 代码需要符号,而不是字符串。