Как создать приложение Gtk # / Mono с использованием Visual Studio 2017 - PullRequest
0 голосов
/ 08 марта 2019

Хорошо, я в полной растерянности.Последние два часа я возился с Gtk # и Mono, но мне еще никуда не деться.

Я установил Mono и GtkSharp по ссылкам , доступным на сайте Mono ,Я также установил сам Gtk со своего сайта, используя MSYS2.

Полный код моего приложения приведен ниже:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Gtk;

namespace InstallCheck {
    public class GtkSharpTest {
        public static void Main() {
            Application.Init();

            Window window = new Window("Hello Mono World");
            window.Show();

            Application.Run();
        }
    }
}

В Visual Studio я добавил ссылки на glib-sharp.dll и gtk-sharp.dll.Он прекрасно собирается, но когда я запускаю его, используя mono InstallCheck.exe, я получаю эту ошибку:

Unhandled Exception:
System.DllNotFoundException: libglib-2.0-0.dll
  at (wrapper managed-to-native) GLib.Marshaller.g_utf16_to_utf8(char*,intptr,intptr,intptr,intptr&)
  at GLib.Marshaller.StringToPtrGStrdup (System.String str) [0x00034] in <d973ca9f8b494b789fba7fe0ad040b14>:0
  at GLib.Global.set_ProgramName (System.String value) [0x00001] in <d973ca9f8b494b789fba7fe0ad040b14>:0
  at Gtk.Application.SetPrgname () [0x0000d] in <35293b6aa2744433b0e2f41f34e699d5>:0
  at Gtk.Application.Init () [0x00001] in <35293b6aa2744433b0e2f41f34e699d5>:0
  at InstallCheck.GtkSharpTest.Run () [0x00001] in <f385106059954ecb8802348d7a6abfe1>:0
  at InstallCheck.GtkSharpTest.Main (System.String[] args) [0x00027] in <f385106059954ecb8802348d7a6abfe1>:0
[ERROR] FATAL UNHANDLED EXCEPTION: System.DllNotFoundException: libglib-2.0-0.dll
  at (wrapper managed-to-native) GLib.Marshaller.g_utf16_to_utf8(char*,intptr,intptr,intptr,intptr&)
  at GLib.Marshaller.StringToPtrGStrdup (System.String str) [0x00034] in <d973ca9f8b494b789fba7fe0ad040b14>:0
  at GLib.Global.set_ProgramName (System.String value) [0x00001] in <d973ca9f8b494b789fba7fe0ad040b14>:0
  at Gtk.Application.SetPrgname () [0x0000d] in <35293b6aa2744433b0e2f41f34e699d5>:0
  at Gtk.Application.Init () [0x00001] in <35293b6aa2744433b0e2f41f34e699d5>:0
  at InstallCheck.GtkSharpTest.Run () [0x00001] in <f385106059954ecb8802348d7a6abfe1>:0
  at InstallCheck.GtkSharpTest.Main (System.String[] args) [0x00027] in <f385106059954ecb8802348d7a6abfe1>:0

Я понятия не имею, что это значит.У меня есть Google и Bing'd, и все получилось, но предоставленные ими решения не сработали.Да, Mono находится на моем Пути, и да, GtkSharp также на моем Пути.Что я делаю неправильно?Это ошибка GTK, ошибка моно или ошибка VS2017?Как мне это исправить?Заранее спасибо.

Редактировать: Я попытался СКАЧАТЬ Gtk, как рекомендовано этой проблемой , но это все равно не сработало.

1 Ответ

0 голосов
/ 02 апреля 2019

вы можете использовать пакет nuget GtkSharp.Win32 для создания приложения Gtk в Visual Studio 2017. https://github.com/jhojen26/GtkSharpTest

...