Visual Studio DllNotFoundException - PullRequest
       4

Visual Studio DllNotFoundException

0 голосов
/ 08 июня 2011
    public const string LIB_GVC = "gvc.dll";
    public const string LIB_GRAPH = "graph.dll";
    public const int SUCCESS = 0;


    [DllImport(LIB_GVC)]
    public static extern IntPtr gvContext();

Позже в основном методе я вызываю gvContext (), и он вызывает исключение DllNotFoundException.В моем проекте я вошел в Project-> Properties и установил пути ссылки, чтобы у меня была папка с именем «resources», которая содержит все мои DLL, включая gvc.dll.Я думал, что это поможет, но это не так.Что мне нужно сделать?

Примечание: я не могу использовать Add Reference, как обычно, я понимаю, что это нормальное поведение, учитывая, что Graphviz не является библиотекой C #.Я также немного неясен с терминологией, почему это называется «неуправляемая DLL»?Кажется, это потому, что он не был скомпилирован из кода C #, но это правда / не вся история?

Я следую этому уроку , если это поможет что-то прояснить.

1 Ответ

1 голос
/ 08 июня 2011

Проблема в том, что исполняемый файл не находит путь к исполняемому файлу.Попробуйте поместить в папку / bin после того, как вы запустили его и посмотрите, как оно работает.Если это так, папка ресурсов у вас либо a) не найдена, либо b) у вас есть операция копирования при компиляции, которая не настроена правильно.

Что касается «того, что неуправляемо», компоненты COM и Native имеют свою памятьобрабатывается либо самой библиотекой (родной всегда, COM может быть обработан средой выполнения в некоторых случаях), либо чем-то другим, чем .NET.CLR не может управлять использованием памяти, поскольку они не являются компонентами .NET.Вот почему их называют «неуправляемыми».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...