C ++符号与Q符号不匹配

时间:2015-04-07 18:29:52

标签: c++ kdb q-lang

从C ++代码返回符号时遇到了一些麻烦。我做了一个小例子来说明问题。

我们导出以下功能:

extern "C" __declspec(dllexport) K getSym(K x) {
    return ks((S)"sym");
}

然后从Q中调用它:

q)asdf:(`our_dll 2:(`getSym;1))[1]
q)asdf
`sym
q)asdf = `sym
0b
q)asdf = `$string asdf
0b
q)0N!asdf
`sym
`sym
q)(string asdf) = (string `sym)
111b

为什么这两个值不相等?

这是32位KDB + 3.2。

1 个答案:

答案 0 :(得分:0)

如果使用2.4之前的q版本,则需要使用ss()函数实习C字符串,然后再将其传递给ks()。您不应该在最近的版本中看到此问题。