![]() |
Модераторы: feodorv |
![]() ![]() ![]() |
|
bomberman |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 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 |
|||
|
||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 5 Всего: 118 |
ну тут же все написано черным по-белому...
у тя кусок приложения (exe) компилиться с /MT ключем, а openSSL с /MD. надаб чтобы компилилось все в одном ключе... (это связано с тем что CRT тянется с длл-ок, тогда как в openSSL он вкомпилен в исходники).... -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Сети | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |