Отсутствует сторонний dll, что мне делать во время ожидания? - PullRequest
1 голос
/ 09 февраля 2009

Я работаю над устаревшим проектом C ++ и скучаю по сторонним dll. Мне сказали, что dll будет доступен через две недели. Работа, которую мне нужно выполнить - это чистый пользовательский интерфейс. Мне не нужны DLL. Тем не менее, приложение не будет работать без DLL. Должен ли я закомментировать все места, где вызывается dll, или создать заполнитель dll, так или иначе, есть множество API, которые нужно покрыть? У кого-нибудь есть идея получше?

Ответы [ 6 ]

6 голосов
/ 09 февраля 2009

Я бы создал заглушку DLL, которая ничего не делает (или так мало, как вам нужно). Затем, когда вы получите реальный, поместите его на заглушку, и все готово.

Если вам нужно создать zillion функций, вы можете использовать perl или какой-либо другой язык сценариев, чтобы помочь превратить ваш список ошибок компоновщика в файл, содержащий прототипы необходимых вам функций.

3 голосов
/ 10 февраля 2009

Если у вас есть доступ к исходному коду EXE-файла (кажется, так), и вы работаете с любой последней версией Visual Studio (6 или более поздней), простое решение - это перестроить с помощью / DelayLoad. Это означает, что компоновщик установит EXE-файл для вызова LoadLibrary и разрешит импорт при первом вызове. Это означает, что если вы на самом деле не вызываете DLL, она никогда не загружается и, соответственно, не пропадает.

Это означает, что вам не нужно создавать заглушку DLL; это 5-минутное изменение.

1 голос
/ 10 февраля 2009

Обычно я динамически загружаю несущественные библиотеки DLL с помощью вызовов LoadLibrary и GetProcAddress, чтобы мои приложения могли работать без них. Приложение может проверить, была ли загружена DLL, и если нет, оно не предлагает функциональность, предоставляемую DLL. Я использовал это с программами проверки орфографии, библиотеками штрих-кодов и т. Д. Возможно, стоит подумать.

1 голос
/ 09 февраля 2009

Написать юнит-тесты. В противном случае звучит как две недели твиддлинга в порядке.

0 голосов
/ 09 февраля 2009

Я бы попробовал продублировать .DLL здесь лицензирование и другие вопросы, несмотря на это. Кроме этого найди другой проект, я думаю ...

0 голосов
/ 09 февраля 2009

Ты не уйдешь далеко. При таком количестве звонков написание обертки - плохое использование времени, если вы не в тюрьме или что-то в этом роде.

Вы не можете взять копию DLL из запущенной установки? Или это проблема лицензирования?

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