Компилятор

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by 77org77, 15 Jun 2010.

  1. 77org77

    77org77 New Member

    Joined:
    31 May 2010
    Messages:
    11
    Likes Received:
    0
    Reputations:
    0
    Всем доброе время суток. Уменя возник такой вопрос по C++ как можно зделать чтобы при статическом подключении библиотеки, невылеслиазила ошибка если библиотеки нету,. а белать своё какое небуть действия. я так понял она сразу идет проверка при загрузки приложения как можно этого избезать. Компилятор Microsoft_Visual_Studio_9.0 OC windows XP sp3.За рание спасибо.
     
  2. 1n0y

    1n0y Active Member

    Joined:
    9 May 2009
    Messages:
    276
    Likes Received:
    282
    Reputations:
    2
    надеюсь код ты пишешь грамотнее, чем посты на форуме..
     
  3. Ra$cal

    Ra$cal Elder - Старейшина

    Joined:
    16 Aug 2006
    Messages:
    670
    Likes Received:
    185
    Reputations:
    78
    гг =) расшифруйте кто нить послание ТС.
     
  4. EniOk

    EniOk New Member

    Joined:
    6 Jun 2009
    Messages:
    8
    Likes Received:
    0
    Reputations:
    0
    Я так понял... У человека возникает ошибка при компиляции - невозможно подключить такую-то библиотеку. Он спрашивает как не обрывать компиляцию на этой ошибке, а выполнить что-либо.

    Имхо - условная компиляция рулит)
    #ifdef, #if - #endif помочь могут)
     
  5. Sunzer

    Sunzer Member

    Joined:
    17 May 2008
    Messages:
    29
    Likes Received:
    9
    Reputations:
    2
    Может быть ТС хочет что бы его бинарь не импортировал msvcrt.dll?
     
  6. d_x

    d_x Banned

    Joined:
    25 Mar 2008
    Messages:
    558
    Likes Received:
    650
    Reputations:
    210
    Расшифровывою: тс билдит бинарник, использующий, например, pcre3.dll или curl.dll. Потом при распространении бинарника прикладываемая dll'ка куда-то теряется, и при запуске приложения вылазит нечто вроде
    [​IMG]

    Вопрос тс'а: можно ли как-то эту ошибку перехватить и сделать что-то своё вместо этого месажбокса.
     
    1 person likes this.
  7. greki_hoy

    greki_hoy Member

    Joined:
    4 Mar 2010
    Messages:
    326
    Likes Received:
    57
    Reputations:
    41
    отложенная загрузка библиотек (у Рихтера) или явная загрузка (LoadLibrary) тогда можно какое угодно свое сообщение показать а при неявном связывании загрузчик показывает это сообщение еще даже когда первичный поток не исполнил ни одной инструкции вашей программы
     
  8. 77org77

    77org77 New Member

    Joined:
    31 May 2010
    Messages:
    11
    Likes Received:
    0
    Reputations:
    0
    Всё ясно, напишу по-другому, при запуски приложения вылетает ошибка что мол нету *.dll когда я копирую эту *.dll в системную директорию то шибка не вылетает а работает нормально. Вопрос как мне можно сделать так чтоб вместо этой ошибки (отсутствия dll) он сперва копировал её с сервера, а потом только уже запускал приложение???
     
  9. Gar|k

    Gar|k Moderator

    Joined:
    20 Mar 2009
    Messages:
    1,166
    Likes Received:
    266
    Reputations:
    82
    мне кажется, коллеги, ТС все таки про CRT :)
     
    _________________________
  10. Ra$cal

    Ra$cal Elder - Старейшина

    Joined:
    16 Aug 2006
    Messages:
    670
    Likes Received:
    185
    Reputations:
    78
    вобщем никак, если линковка компилем происходит. ибо запись о библиотеке пишется в Import часть PE хидера. Если хочешь подгружать - значит вызов функций делать надо через LoadLibrary и GetProcAddress, а это гемор. Так что просто кидай dll прямо в папку с программой и пакуй так.
     
  11. greki_hoy

    greki_hoy Member

    Joined:
    4 Mar 2010
    Messages:
    326
    Likes Received:
    57
    Reputations:
    41
    или такой извращенский способ
    пишеш exe ему в виде бинарных ресурсов вкомпиливаеш основной exe и нужные .dll когда пускач стартанет распакует все dll и основной exe и запустит его а сам удалится с диска
    но имхо не проще ли инсталлятор сделать ?
     
  12. 77org77

    77org77 New Member

    Joined:
    31 May 2010
    Messages:
    11
    Likes Received:
    0
    Reputations:
    0
    Всё понял спасибо.