从 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。