Всем доброе время суток. Уменя возник такой вопрос по C++ как можно зделать чтобы при статическом подключении библиотеки, невылеслиазила ошибка если библиотеки нету,. а белать своё какое небуть действия. я так понял она сразу идет проверка при загрузки приложения как можно этого избезать. Компилятор Microsoft_Visual_Studio_9.0 OC windows XP sp3.За рание спасибо.
Я так понял... У человека возникает ошибка при компиляции - невозможно подключить такую-то библиотеку. Он спрашивает как не обрывать компиляцию на этой ошибке, а выполнить что-либо. Имхо - условная компиляция рулит) #ifdef, #if - #endif помочь могут)
Расшифровывою: тс билдит бинарник, использующий, например, pcre3.dll или curl.dll. Потом при распространении бинарника прикладываемая dll'ка куда-то теряется, и при запуске приложения вылазит нечто вроде Вопрос тс'а: можно ли как-то эту ошибку перехватить и сделать что-то своё вместо этого месажбокса.
отложенная загрузка библиотек (у Рихтера) или явная загрузка (LoadLibrary) тогда можно какое угодно свое сообщение показать а при неявном связывании загрузчик показывает это сообщение еще даже когда первичный поток не исполнил ни одной инструкции вашей программы
Всё ясно, напишу по-другому, при запуски приложения вылетает ошибка что мол нету *.dll когда я копирую эту *.dll в системную директорию то шибка не вылетает а работает нормально. Вопрос как мне можно сделать так чтоб вместо этой ошибки (отсутствия dll) он сперва копировал её с сервера, а потом только уже запускал приложение???
вобщем никак, если линковка компилем происходит. ибо запись о библиотеке пишется в Import часть PE хидера. Если хочешь подгружать - значит вызов функций делать надо через LoadLibrary и GetProcAddress, а это гемор. Так что просто кидай dll прямо в папку с программой и пакуй так.
или такой извращенский способ пишеш exe ему в виде бинарных ресурсов вкомпиливаеш основной exe и нужные .dll когда пускач стартанет распакует все dll и основной exe и запустит его а сам удалится с диска но имхо не проще ли инсталлятор сделать ?