Я использую с ++
Я разрабатываю внутриигровой интерфейс для использования в любом произвольном процессе, на котором я хочу, чтобы он запускался. По сути, я хочу, чтобы он мог работать с любым приложением, которое использует, скажем, DX9.
Но на самом деле это не мой вопрос, я хочу использовать HTML и (JS, CSS) для визуализации моего пользовательского интерфейса.
Я хотел бы использовать что-то вроде Awesomium или Chromium Embedded Framework, но оба они требуют наличия 5+ зависимостей (dll и т. Д.) И требуют, чтобы они были в том же каталоге, что и родительское приложение.
Теперь, потому что я буду вводить dll, которая делает это, я не хочу или не могу получить зависимости в нужном месте для правильной работы.
Я определенно не хочу, чтобы все зависимости misc лежали в одной папке с целевым процессом
Я хотел бы использовать что-то, что, возможно, либо статическая библиотека или одна DLL в качестве зависимости.
Другая проблема, кажется, что CEF и Awesomium — одни из немногих, которые действительно имеют приличную систему обратного вызова между javascript и C ++.
Я думаю, что мне нужно знать, это способ сохранить все зависимости Awesomium / CEF в одной папке и ссылаться на них из любого приложения? Или есть ли лучшие решения для использования.
Я также видел Sciter, который, кажется, хороший вариант, но использует что-то похожее на JavaScript, но не совсем, что не идеально.
Немного больше информации, основываясь на этих замечаниях:
Каталог, из которого загружено приложение.
Системный каталог. Используйте функцию GetSystemDirectory, чтобы получить путь к этому каталогу.
16-битный системный каталог. Нет функции, которая получает путь к этому каталогу, но она ищется.
Каталог Windows. Используйте функцию GetWindowsDirectory, чтобы получить путь к этому каталогу.
Текущий каталог.
Каталоги, перечисленные в переменной среды PATH. Обратите внимание, что сюда не входит путь для каждого приложения, указанный в разделе реестра «Пути к приложениям». Ключ App Paths не используется при вычислении пути поиска DLL.
Dlls не должен быть слишком большой проблемой, но я должен рассмотреть некоторые другие вещи.
Задача ещё не решена.
Других решений пока нет …