Почему C#? Ну, мне просто нравится этот язык, и есть ECS Framework для C#, который я хотел бы использовать.
На данный момент я настроил тестовый проект консольного приложения с таргетингом на Visual Studio. .NET Core 3 и добавил пакет NuGet для GTK#.
Я написал простую программу Hello World для тестирования среды.
Код: Выделить всё
using System;
using Gtk;
namespace GTKTest
{
class Program
{
static void Main(string[] args)
{
Application.Init();
Window win = new Window("Hello GTK");
Label lbl = new Label("This is a test GTK App written with C# for GNU/Linux and Windows");
win.DeleteEvent += Win_DeleteEvent;
win.Add(lbl);
win.ShowAll();
Application.Run();
win.Dispose();
Console.Write("Press any key...");
Console.ReadKey();
}
private static void Win_DeleteEvent(object o, DeleteEventArgs args)
{
Application.Quit();
args.RetVal = true;
}
}
}
Код: Выделить всё
System.TypeInitializationException
HResult=0x80131534
Message=The type initializer for 'Gtk.Application' threw an exception.
Source=GtkSharp
StackTrace:
at Gtk.Application.Init()
at GTKTest.Program.Main(String[] args) in D:\Workspace\VSRepos\C#\GTKTest\Program.cs:line 10
Inner Exception 1:
DllNotFoundException: Gtk
Чего мне не хватает? Что я делаю не так? Возможно ли то, чего я пытаюсь достичь, как я себе это представляю? Меня также интересуют некоторые альтернативы программирования кроссплатформенного программного обеспечения с графическим интерфейсом на C#. Я наткнулся на Electron.js, но слышал, что у него большие накладные расходы на память, и я не особо разбираюсь в JavaScript. AvaloniaUI показался интересным, но я подумал, что описанный выше подход будет лучше.
Редактировать: после добавления пути msys, как предложено здесь на шаге 3, я получаю следующую ошибку, предшествующую исключению из приведенного выше. . Ошибка гласит, что точку входа в процедуру не удалось найти в dll.
[img]https://i .sstatic.net/PTtnC.png[/img]
Подробнее здесь: https://stackoverflow.com/questions/581 ... ternatives