标签: vala

Vala vapi文件文档

我想使用Vala破解现有的基于GLib的C项目.

基本上我正在做的是,在我的构建过程开始时,使用valac从我的.vala文件生成.c和.h文件,然后按照我任何.c或.h文件的方式编译生成的文件.

这可能不是最好的方式,但似乎在大多数情况下工作正常.

我的问题是我很难从Vala代码访问现有的C代码.是否有捷径可寻?

我已经尝试编写自己的.vapi文件(我对vala附带的工具没有任何好运),但我找不到任何关于如何编写这些文件的体面文档.

有没有?我是否需要其中一个文件来调用现有的C代码?

c glib vala vapi

11
推荐指数
1
解决办法
6766
查看次数

是否有终端工具为Vala项目自动生成autoconf/automake makefile?

我正在尝试创建一个Vala项目,看看我喜欢使用该语言进行开发,以此作为Mono的替代品.我认为automake的东西可以用来生成一个包含所有必要文件的项目模板(没有我的.vala代码).任何帮助,将不胜感激.

autotools vala

10
推荐指数
1
解决办法
1023
查看次数

VALA与AOT汇编之间的表现差异?

我一直在用Java开发图像处理应用程序,但我最近对VALA感兴趣.原因是因为我相信我可以提高应用程序性能(我主要关注的是与C/C++库的互连,因为看起来< Example >在Java中使用C/C++桥时存在性能损失).

背景(我所知道):

  • VALA转换为C代码,然后将其编译为本机机器代码.
  • AOT(Java/Mono C#)也可以生成本机机器代码(而不是使用VM,但仍需要运行时包).
  • 在某些情况下使用VM,甚至可以比本机机器代码更快(因为它可以通过JIT编译器进行优化).
  • 可以使用VALA生成可消费的C/C++库.

有一些事情在我脑海里蔓延,我无法找到答案:

  1. 可以使用AOT编译器生成C/C++可使用的库吗?(我猜不会).
  2. 生成的AOT二进制文件是否还存在桥接性能问题?(我猜它确实如此).
  3. 在VALA中调用C/C++库与从C调用它们具有相同的性能吗?(我想是的).

任何见解?

c# java vala aot

10
推荐指数
1
解决办法
2116
查看次数

转换为 int 与 Math.floor

使用cast to int而不是Math.floor将float/double值转换为整数是否节省?

var scale = 1.5;
int foo1 = (int)scale;
int foo2 = Math.floor(scale);
Run Code Online (Sandbox Code Playgroud)

vala

10
推荐指数
1
解决办法
8243
查看次数

Vala和Genie生产准备好了吗?

我正在使用一些遗留的C代码,我需要重构和清理,删除意大利面条型编程,遵守DRY原则等.

我正在考虑使用C++进行重写,但我不想走得那么远,并希望尽可能保持与C的接近(同时使用一些OOP概念[无需手动编写代码]).

我最近遇到了GObject,Vala和Genie.后两者是最近的.是否有人知道在生产代码中使用Vala或Genie?

最后但并非最不重要 - 是否有两种语言之间的利弊比较列表.我倾向于Genie,因​​为我喜欢Python而且我对C#并不太热衷,但Genie(显而易见的)对标签的坚持可能在实践中有点烦人 - 我会对一系列的利弊感兴趣两种语言(假设其中一种或两种语言可供生产使用).

顺便说一句,我正在开发Linux,所以任何与Windows相关的问题都与我无关.

c gobject vala genie

9
推荐指数
1
解决办法
3758
查看次数

使用Vala进行日志记录

我是Vala编程的新手,拥有Java和.NET的经验,但我还没有找到有关如何使用Vala进行日志记录的任何有用的东西.是否有任何有用的日志记录工具,如log4j或log4net,或者建议的方式登录Vala并扩展到几个日志级别,如错误,警告,调试和跟踪?那么像断言和合同那样的防御性编程呢?是否有任何建议的方法来进行防御性编程并获得具有堆栈跟踪和精确根本原因的最有用日志?谢谢你的建议.

logging defensive-programming vala

9
推荐指数
1
解决办法
2716
查看次数

在哪里可以找到有关如何在Mac上安装Vala的说明?

我正在研究学习Vala编程语言,在哪里可以找到一个地方向我展示如何在我的Mac上安装它?

macos vala

8
推荐指数
2
解决办法
2604
查看次数

如何让gtk.window始终保持在最高水平

我试图保持gtk.window在顶部,但我遇到了麻烦.

到目前为止,这是我的代码.这个例子是在vala gnome中(在Windows 7上).

public void onTop() {
    window.decorated = false;
    window.modal = true;
    window.set_keep_above(true);
}
Run Code Online (Sandbox Code Playgroud)

gtk vala

8
推荐指数
1
解决办法
5732
查看次数

GTK中一个操作的多个快捷方式

将多个键盘快捷键绑定到GTK + 3中的一个动作的最佳方法是什么?

几天来,我一直在寻找这个问题的答案,并且一无所获.该函数gtk_accelerator_parse不支持逗号分隔的快捷方式.将多个<accelerator>标记放在.ui具有相同action属性和不同key属性的文件中也不起作用.

我不想写一个自定义按键处理程序,所以我可以有一个动作的两个快捷方式,但这真的是唯一的方法吗?

gtk action shortcut vala

8
推荐指数
1
解决办法
484
查看次数

如何在vala中使用gtk/glade

我正在尝试使用glade/gtk/vala创建一个简单的应用程序.到目前为止我有这个:

using Gtk;
class HelloWorldApp : GLib.Object {
    const string UI = "test.glade";
    public Window main_window;

    [CCode (instance_pos = -1)]
    public void on_btn_hello_clicked(Button source) {
    stdout.printf("Hello, world");
    }

    construct {
        Builder builder = new Builder();
        builder.add_from_file(UI);
        main_window = builder.get_object("window1") as Window;
        main_window.destroy.connect(Gtk.main_quit);
        builder.connect_signals(this);
    }
}

class HelloWorld : GLib.Object {
    public static int main(string[] args) {
        Gtk.init (ref args);
        HelloWorldApp h = new HelloWorldApp();
        h.main_window.show_all();
        Gtk.main();
        return 0;
    }
}
Run Code Online (Sandbox Code Playgroud)

当我运行它时输出:(helloworld:22641):Gtk-WARNING**:无法找到信号处理程序'on_btn_hello_clicked'但是除了未被调用的处理程序之外还运行良好

我究竟做错了什么?

gtk glade vala

7
推荐指数
1
解决办法
5232
查看次数

标签 统计

vala ×10

gtk ×3

c ×2

action ×1

aot ×1

autotools ×1

c# ×1

defensive-programming ×1

genie ×1

glade ×1

glib ×1

gobject ×1

java ×1

logging ×1

macos ×1

shortcut ×1

vapi ×1