以下代码
Xml.Node* node = new Xml.Node (null, "name");
node->set_content("&");
Run Code Online (Sandbox Code Playgroud)
产生以下错误:
错误:未终止的实体引用
这是一个错误还是我做错了什么?
大字符和小字符都可以正常工作.此外,add_content方法与&符号一起正常工作.
我想调用Gdk.Pixbuf.from_data()构造函数,以便将来自GStreamer的视频帧包装成pixbuf.构造函数接受指向内存的指针uint8[].但是我有一个void *变量(Gst.Video.Frame.data[0])指向数据的开头.我知道uint8[]这不仅仅是一个指针,而是一种了解内存开始的位置以及它跨越多远的类型.但是因为Gdk.Pixbuf.from_data()它并不重要,因为函数的C签名只接受,const guchar *并且长度是从其他参数(如步幅和高度)推断出来的.
那么......我如何正确地将void *指针包装到uint[]数组中?
Video.Frame frame = {};
...
var pixbuf = new Gdk.Pixbuf.from_data((uint8[])frame.data[0], ...);
Run Code Online (Sandbox Code Playgroud)
上面的转换不起作用,因为vala生成C代码,该代码将数据复制memory到新创建的数组但长度不正确.首先,显然vala本身不知道void *点的长度,其次,我不需要任何复制,我只需要一个简单的转换.
我正在尝试让编辑器突出显示Vala代码的语法。到目前为止,我已经尝试过:
这些都不突出我的文字。我发现此列表表明上面的三个支持突出显示了Vala。那么如何使它们突出显示?或者,如果我不能代替我使用什么(我真的不想依次下载每一个以找出答案)。
我一直能够在运行“ Linux Mint 18.3 Cinnamon 64位”的PC上从git仓库https://github.com/GNOME/vala.git编译源代码。我安装了最新的valac(0.42.4-0ubuntu1〜16.04〜valateam0)。
我所做的最后一次成功编译来自0.40.0.257-40b5-dirty版本。今天,我下载了最新的vala.git,但是当我运行./configure时,我得到了:
./configure: line 12579: syntax error near unexpected token `$flag,TEST_CFLAGS="$TEST_CFLAGS $flag"'
./configure: line 12579: ` AX_CHECK_COMPILE_FLAG($flag,TEST_CFLAGS="$TEST_CFLAGS $flag")'
Run Code Online (Sandbox Code Playgroud)
我是否需要进行其他环境更改?不确定要从这里去。
我正在尝试创建一个源代码转换器,它将objective-c代码转换为c源代码,如valac(将vala转换为c代码).我不确定这是否是客观的c,但这就是我想要的,所以这是我自己的语言.
在一开始我认为我可以使用,string.replace但这将无法工作,因为人们可以创建这样的东西:- (person)myperson {}.
所以我认为通过char扫描文本char会做,但我的代码由于某种原因不起作用.怎么了?我能找到更好的方法(也许使用正则表达式?).如果这样做是正确的,那么我怎样才能将char[]数组转换为字符串(在第72行)?
那么我如何制作一个objc转换器呢?所有链接和示例表示赞赏.
谢谢