Vala GUI and logic in C++
Vala GUI and logic in C++
我有一个使用SDL的绘图程序,用c++编写。我想在Vala中创建一个图形界面,并使用它从程序调用函数(函数准备使用,我只想从GUI调用它们)。我在寻找VAPI的解决方案,我在考虑使用GObject,但我不能同时接受两者。有人做过类似的事情吗?你能给我一个解决问题的建议吗?
如果你想在Vala中使用c++代码,我们要适当地准备它们。下面是一个例子。
首先你必须告诉valac
编译器这个函数是在其他地方定义的。让我们使用extern指令。
// ccodetest.vala
extern void cpp_test_function ();
void main () {
stdout.printf ("This is Vala coden");
cpp_test_function ();
}
然后c++中的函数与C派生的目标文件正确链接,我们将它们声明为extern "C"。
// cpplibrary.cpp
# include
using namespace std;
extern "C" void cpp_test_function () {
cout << "This is a C + + coden";
}
当我们准备好了,我们可以将Vala代码编译成c。我们得到ccodetest.c
。
valac -C ccodetest.vala
现在我们可以使用gcc
来编译目标文件。我们得到ccodetest.o
。
gcc-o ccodetest.o ccodetest.c-c-I /usr/include/glib-2.0/ -I /usr/include/glib-2.0/glib/ -I /usr/lib/glib-2.0/include/
文件c++编译如下。
g++ -o cpplibrary.cpp.o cpplibrary.cpp -c
最后我们链接了两个文件。
g++ -o ccode_test ccodetest.o cpplibrary.cpp.o -L /usr/lib/ -lglib-2.0 -lgobject-2.0
程序的工作方式如下:
$ ./ccode_test
This is Vala code
This is a C++ code
相关文章:
- netcat command in c++
- Difference in displaying cv2 Mat
- C++ MFC Libraries in Travis CI
- 如何在OpenSSL中从configuration.h.in获取configuration.h
- 创建具有 new in 函数和"this is nullptr"异常的对象
- IN, OUT, INOUT Parameters
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 有人安装"IITB Simplecpp in mac"吗?
- 从 C 样式字符串中删除子字符串 "in place" 在C++代码中
- 如何修复"error: ‘_1’ was not declared in this scope"?
- Softmax Implementation in C++
- 将 out/in out 参数与 if/switch 的 init 语句一起使用
- IF-nesting in c++
- Gurobi GRBModel and GRBmodel in C++
- Tensorflow Hub in C++
- Centos7 g++ "to_string is not in a member of std"
- InitializeCriticalSectionEx Not Located In KERNEL32.Dll
- 将 lambda 表达式传递给 std::function in C++
- @CPPFLAGS@在 Makefile.in 中意味着什么?
- std::async from std::async in windows xp