В основном, у меня есть программа, которая генерирует пару .cpp
файлы, которые включены в проект Visual Studio. Теперь я хочу, чтобы моя программа попросила Visual Studio построить этот проект, теперь, когда .cpp
файлы были созданы.
я могу использовать system()
звонить MSBuild
или же devenv
сделать это. Они оба плохо себя ведут, но я могу заставить их работать. Но в конечном счете, я действительно хочу взаимодействовать с Visual Studio / MSBuild непосредственно в моем коде C ++, чтобы я мог делать такие вещи, как, если бы он возвращал мне путь к выводу напрямую, или что у вас.
Есть ли способ сделать это? Каждый раз, когда я выполняю поиск по «созданию проекта Visual Studio в C ++» или подобному, конечно, я просто получаю базовые учебные пособия по настройке проекта и построению его через IDE (или, в лучшем случае, через командную строку).
Используйте CreateProcess и используйте перенаправление stdout для передачи вывода в файл. Затем вы можете программно прочитать и оценить этот файл.
Пример MS: http://support.microsoft.com/kb/190351
Может быть, это поможет: Как перенаправить вывод в файл с помощью CreateProcess?
Вы можете запустить генератор из студии как событие перед сборкой. именно так MS считает, что мы должны это сделать. Кроме того, внутри решения вы можете связывать проекты через зависимости. снова стиль MS. Альтернативно, вы можете создать настоящую систему make, такую как CMake.
Вы можете запустить любую командную строку из .NET с помощью System.Diagnostics.Process.