Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.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
“你怎么样?”;“输出参数”;代表种子JavaScript GObject绑定?_C_Binding_Gtk_Seed_Gobject - Fatal编程技术网

“你怎么样?”;“输出参数”;代表种子JavaScript GObject绑定?

“你怎么样?”;“输出参数”;代表种子JavaScript GObject绑定?,c,binding,gtk,seed,gobject,C,Binding,Gtk,Seed,Gobject,我刚刚开始使用它进行开发。Seed的网页提到的一件事是它“将C-ISM(比如,out arguments或enum)映射到JavaScript中有意义的东西。”不幸的是,我找不到任何关于out arguments应该如何工作的文档或示例。因此,例如,以下Seed调用: window.get_size() 将返回错误“GInvokeError太少”out“参数(处理out)” 在C中,调用将通过传入两个out参数来表示: gtk_window_get_size(GTK_WINDOW(widget

我刚刚开始使用它进行开发。Seed的网页提到的一件事是它“将C-ISM(比如,out arguments或enum)映射到JavaScript中有意义的东西。”不幸的是,我找不到任何关于out arguments应该如何工作的文档或示例。因此,例如,以下Seed调用:

window.get_size()
将返回错误“GInvokeError太少”out“参数(处理out)”

在C中,调用将通过传入两个out参数来表示:

gtk_window_get_size(GTK_WINDOW(widget), &width, &height);
我在JavaScript调用上尝试了各种排列,但没有成功。我还查看了文档和示例代码,但没有发现任何内容。除了看代码,我想我已经没有选择了


我非常感谢任何人对此提供的见解。

尝试间接调用此函数。通过这个shell函数,您可以将参数传递给gtk_window_get_size方法,然后处理检索到的结果。例如,将其返回给调用js函数,在本例中,该函数希望解析窗口的大小

var o1 = {};
var o2 = {};
window.get_size(o1, o2);

var width = o1.value;
var height = o2.value;

在中有一个例子(当缺少文档时,有时查看测试会很有用。)

我认为这应该可以直接从js中完成,因为主页明确提到了处理out参数。另一方面,python中的等效调用非常简单,只返回一个(宽度、高度)元组,因此JavaScript中的朴素调用失败这一事实实际上应该被视为Seed中的一个bug。为什么在这个调用中不给它任何参数:window.get_size(),而它需要两个参数?它应该在哪里存储值?现在还不清楚“out参数”在js中是如何表示的,因为它不可能像在C中那样传递指针。你可以传递一个对象的引用,这很接近,但我已经尝试过了,它对对象没有任何影响。我认为这样一个函数以返回值数组的形式返回参数是有意义的,就像python绑定中目前所做的那样,但它目前没有这样做,所以我倾向于将其作为一个bug归档到Seed中。也许这是一个bug,但为什么不按照您刚才描述的那样做呢?创建一个可以完成所有工作的函数(将参数传递给gtk_window_get_size(gtk_window(小部件),&width,&height);并将值存储在数组中),然后返回带有结果的数组。然后从JS开始,只需在服务器上调用此方法。。。