Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在C+中嵌入Julia+;_C++_Char_Julia_Embed - Fatal编程技术网

C++ 在C+中嵌入Julia+;

C++ 在C+中嵌入Julia+;,c++,char,julia,embed,C++,Char,Julia,Embed,我试图按照文档()中的解释嵌入Julia,但无法使其与chars一起工作。我可能缺少一些基本的东西 当我运行以下代码时 jl_function_t *func = jl_get_function(jl_base_module, "uppercase"); char const *julia = "julia"; jl_value_t *argument = jl_box_char(*julia); jl_value_t *ret = jl_call1(func, argument); const

我试图按照文档()中的解释嵌入Julia,但无法使其与chars一起工作。我可能缺少一些基本的东西

当我运行以下代码时

jl_function_t *func = jl_get_function(jl_base_module, "uppercase");
char const *julia = "julia";
jl_value_t *argument = jl_box_char(*julia);
jl_value_t *ret = jl_call1(func, argument);
const char *unboxed = jl_string_ptr(ret);
// expecting "JULIA", getting an empty string
变量unbox返回为空。jl_box_char似乎期望一个指针,因为它的参数必须是uint32_t()

请注意,调用以下命令时,字符被正确地取消装箱:

jl_value_t *ret = jl_eval_string("uppercase(\"julia\")");
const char *unboxed = jl_string_ptr(ret);

有什么想法吗?谢谢。

答案由@molbdnilo找到。以下工作:

jl_function_t *func = jl_get_function(jl_base_module, "uppercase");
char const *julia = "julia";
jl_value_t *argument = jl_cstr_to_string(julia);
jl_value_t *ret = jl_call1(func, argument);    
const char *unboxed = jl_string_ptr(ret); // expecting "JULIA", getting "JULIA"

*julia
不是指针<代码>jl_box_char“box”一个字符。如果它需要指针,那么它的参数将是指针,而不是整数。您需要
jl_cstr_to_string
。谢谢@molbdnilo,就这样。行jl_value_t*参数=jl_box_char(*julia);只需替换为jl_value_t*argument2=jl_cstr_to_字符串(julia);