Проблема с Graphviz - gvLayout() - Работа с библиотекой

Я кодирую в C#. Я отправляю аргументы ниже функции gvLayout(gvc, g, layout)

IntPtr gvc = gvContext();

// My string containing the graph
IntPtr g = agmemread(source);

string layout = "nop";

Я импортировал dll из папки graphviz.

Я получаю ответ:

Error: Layout type: "nop" not recognized. Use one of:

Итак, я попробовал:

string layout = "dot";

И получил: Ошибка: Тип макета: "точка" не распознана. Используйте один из:

Возвращаемое int значение gvLayout(gvc, g, layout), которое я получаю, равно -1 (должно быть 0).


ОБНОВИТЬ:

Я поместил все dll и файл config6 в свой проект. Теперь я получаю сообщение 4 раза, а затем ничего не происходит:

"Программа не может запуститься, потому что libglib-2.0-0.dll отсутствует на вашем компьютере. Попробуйте переустановить программу, чтобы решить эту проблему."

Дело в том, что файл уже там. Я также попытался добавить копию этого файла в папку System32, но она тоже не сработала.


Я уже читал, почему Graphviz не работает на gvLayout? и не смог найти решение.

3 ответа

Имея ту же проблему, я решил ее, скопировав все файлы *.dll и "config6" из "C:\Program Files (x86)\Graphviz\bin" рядом с моим исполняемым файлом.


Сначала я попытался скопировать только необходимые.dll, но у меня возникли некоторые ошибки или проблемы со шрифтами или макетом. Я закончил, скопировав все.dll и теперь все работает нормально.

Вы уверены, что все ваши файлы DLL находятся в нужной папке? Я избавился от ошибки, когда фактически скопировал все файлы в каталоге graphviz в нужную папку отладки....

Как вы установили графвиз? Вы ссылаетесь на установленную версию, или вы скопировали dll в другом месте? Механизм плагинов полагается на файл с именем config6, находящийся в DLL, чтобы определить, какие плагины доступны.

Другие вопросы по тегам