2010-04-02 5 views
1

Я хочу выполнить exe-файл, который написан на VC++. Net 2008 на компьютере с окнами xp и не имеет .NET Framework и ни одной из библиотек C++. , но когда я запускаю файл я получаю эту ошибку:инъекции dll в exe-файл

This application has failed to start because the application configuration is incorrect.... 

Я хочу способ поставить все зависимости вместе, чтобы стать свободным от этой проблемы. Кто-нибудь знает, что мне делать?

+0

Вы имеете в виду C++/CLI? – SLaks

ответ

2

Если вы пишете чисто приложение C++ (только для Win32, нет .NET), то вы хотите статически связать время выполнения C++, которое можно изменить в свойствах вашего проекта. Для получения инструкций см. this answer. (Это для VC2005, но шаги в VC2008 одинаковы)

1

Вы, кажется, ищете .Net компоновщик, такой как this one.

+0

как я могу установить в VS2008 для проекта, чтобы использовать его из моих библиотек не из моих системных DLL? – JGC

+0

Вы не можете сделать это для проекта .Net без стороннего программного обеспечения. – SLaks

+0

Я не серьезно использую .net Я просто хочу использовать функции windows. Знаете ли вы другую среду, которая может решить мою проблему? – JGC

0

У вас есть два основных варианта: либо написать свою программу на чистом C++ (или на каком-либо другом языке, который может/будет создавать полностью автономные исполняемые файлы), либо использовать зависимый ходок, чтобы найти нужные DLL, и упаковать их в программа установки.

Опция, которую вы предлагаете (принимая существующий исполняемый файл, который зависит от некоторых DLLS и пытается «внедрить» библиотеки DLL в исполняемый файл) в значительной степени неработоспособный. Теоретически вы могли бы (например) создать программу установки в качестве исполняемого файла и просто попросить пользователя повторно запустить программу установки каждый раз, когда они захотят запустить вашу программу. Обычно это добавит достаточно накладных расходов, которые, вероятно, не понравятся вашим пользователям.

Кроме того, вы можете поместить DLL в исполняемом файле как бинарный ресурс и использовать FindResource, LoadResource и т.д., чтобы написать свой контент из временного файла - но это требует немного полупрозрачный продвинутого программирования, и это до сих пор налагает достаточное количество накладных расходов.

+0

есть ли способ, которым я могу разместить свои DLL возле моего исполняемого файла и использовать их? – JGC

+0

@JGC: Да - если вы скопируете их в тот же каталог с исполняемым файлом, система сможет их найти. –

Смежные вопросы