Проблема с 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, чтобы определить, какие плагины доступны.