Модераторы: feodorv
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> OPENSSL_Uplink<022A9010,06>: no OPENSSL_Applink 
:(
    Опции темы
bomberman
Дата 16.5.2008, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 4.4.2008
Где: Брест

Репутация: нет
Всего: нет



Приветствую, господа!

Ошибка при запуске экзешника
OPENSSL_Uplink<022A9010,06>: no OPENSSL_Applink

В моей проге клиен передает текстовую строку серверу. Причем все это отлично выполняется
из отладчика, а экзешник выполняетсяс ошибкой.

В исходнике функции OPENSSL_Applink сказано следующее:

/* Note that the below code is not MT-safe in respect to msg
     * buffer, but what's the worst thing that can happen? Error
     * message might be misleading or corrupted. As error condition
     * is fatal and should never be risen, I accept the risk... */
    /* One can argue that I should have used InterlockedExchangePointer
     * or something to update static variables and table[]. Well,
     * store instructions are as atomic as they can get and assigned
     * values are effectively constant... So that volatile qualifier
     * should be sufficient [it prohibits compiler to reorder memory
     * access instructions]. */   

Комментарии об этой ошибке имеются в http://www.openssl.org/support/faq.html#PROG2
в подразделе 2. I've compiled a program under Windows and it crashes: why?
Но, честно говоря, слегка не врубаюсь:

As per 0.9.8 the above limitation is eliminated for .DLLs. OpenSSL .DLLs compiled with some specific run-time option [we insist on the default /MD] can be deployed with application compiled with different option or even different compiler. But there is a catch! Instead of re-compiling OpenSSL toolkit, as you would have to with prior versions, you have to compile small C snippet with compiler and/or options of your choice. The snippet gets installed as <install-root>/include/openssl/applink.c and should be either added to your application project or simply #include-d in one [and only one] of your application source files. Failure to link this shim module into your application manifests itself as fatal "no OPENSSL_Applink" run-time error. An explicit reminder is due that in this situation [mixing compiler options] it is as important to add CRYPTO_malloc_init prior first call to OpenSSL.

Заранее спасибо за любой комментарий!

Это сообщение отредактировал(а) bomberman - 16.5.2008, 17:07
PM MAIL ICQ   Вверх
jonie
Дата 17.5.2008, 09:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 5
Всего: 118



ну тут же все написано черным по-белому...
Цитата

 The snippet gets installed as <install-root>/include/openssl/applink.c and should be either added to your application project or simply #include-d in one [and only one] of your application source files.

 An explicit reminder is due that in this situation [mixing compiler options] it is as important to add CRYPTO_malloc_init prior first call to OpenSSL.


у тя кусок приложения (exe) компилиться  с /MT ключем, а openSSL с /MD.
надаб чтобы компилилось все в одном ключе... (это связано с тем что CRT тянется с длл-ок, тогда как в openSSL он вкомпилен в исходники)....


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0754 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.