впрыскивая dll в exe-файл - PullRequest
       0

впрыскивая dll в exe-файл

1 голос
/ 02 апреля 2010

Я хочу выполнить исполняемый файл, который написан на VC ++. Net 2008 на компьютере с Windows XP и не имеет .net Framework и ни одной из библиотек c ++. но когда я запускаю файл, я получаю эту ошибку:

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

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

Ответы [ 3 ]

2 голосов
/ 02 апреля 2010

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

1 голос
/ 02 апреля 2010

Вы, похоже, ищете компоновщик .Net, такой как этот .

0 голосов
/ 02 апреля 2010

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...