Создание libcurl с SSL поддерживает в Windows

очень легко мы можем разобрать json с помощью словаря и JavaScriptSerializer. Вот пример кода, по которому я разбираю json из файла ashx.

var jss = new JavaScriptSerializer();
string json = new StreamReader(context.Request.InputStream).ReadToEnd();
Dictionary<string, string> sData = jss.Deserialize<Dictionary<string, string>>(json);
string _Name = sData["Name"].ToString();
string _Subject = sData["Subject"].ToString();
string _Email = sData["Email"].ToString();
string _Details = sData["Details"].ToString();
42
задан sharkin 14 October 2009 в 09:51
поделиться

4 ответа

Ну, так как это сообщение перестало работать плохо, я должен был вырыть в вопрос сам.

Также проверяют другие ответы и комментарии для получения дополнительной информации относительно других версий и т.д.

РЕДАКТИРОВАНИЕ: Так как я отправил этот Q, кажется, существует сборные двоичные файлы, сделанные доступный от вихревой домашней страницы. Выезд ответ James .

, Таким образом, здесь идет:

-

Препроцессор

следующие два символа должны питаться к препроцессору для включения SSL для libcurl:

USE_SSLEAY
USE_OPENSSL

(libcurl использует OpenSSL для поддержки SSL)

, Кроме того, символы могут быть добавлены непосредственно к файлу, названному setup.h в libcurl, но я не слишком доволен изменением кода в сторонних дистрибутивах, если я действительно не имею к.

Восстановление libcurl библиотеки, я теперь добрался, некоторые ошибки о OpenSSL включают файлы, не находимые. Естественно, так как я правильно еще не настроил распределение OpenSSL.

Компиляция двоичные файлы OpenSSL

я загрузил исходное распределение OpenSSL 0.9.8 и распаковал его.

В корне исходного распределения существует файл под названием Установка W32, которая описывает, как скомпилировать двоичные файлы OpenSSL. Цепочка сборки требует жемчуга, таким образом, я установил последнюю версию ActivePerl.

я испытал некоторые затруднения из-за сборки, которая не могла бы быть применима ко всем системам, но я пройду его здесь в случае, если кто-то испытывает то же.

Согласно Установке W32:

Выполнение следующие задачи командной строки с набором текущего каталога к исходному корню распределения:

1> perl Configure VC-WIN32 --prefix=c:/some/openssl/dir

(Где "c:/some/openssl/dir" должен быть заменен dir, где OpenSSL должен быть установлен. Не используйте пробелы в этом пути. Компиляция далее вперед перестанет работать в этом случае)

2> ms\do_ms

Для меня, этот шаг был неудачен сначала, так как я испытал недостаток в переменных среды OSVERSION и TARGETCPU. Я установил их на 01.05.2600 и x86 соответственно. Можно получить жалобу на OSVERSION быть "безумным", но выглядеть ближе, эта ошибка для WinCE и не влияет на установку Win32. Для овладения версией ОС выполните команду 'ver' от командной строки или выполните winver.exe.

3> nmake -f ms\nt.mak (for static library)

или

3> nmake -f ms\ntdll.mak (for DLL)

источник теперь компилирует. Занял приблизительно 5 минут на моем ноутбуке.

, Когда компиляция завершается, освобождение или двоичные файлы были помещены в:

distroot/out32 - для статической сборки библиотеки

или

distroot/out32dll - для сборки DLL

Здание и соединение

Теперь, назад к Visual Studio и указывают на освобождение и включают путь для заголовков. Включать файлы расположены в [1 153] distroot/inc32/openssl.

Не забывают добавлять libeay32.lib и ssleay32.lib, поскольку компоновщик ввел.

Восстанавливают libcurl проект.

Ошибка!

Хорошо, по крайней мере, для меня с этой версией OpenSSL. это жаловалось на определение типа структуры в одном из заголовков OpenSSL. Я не мог найти информацию об этом. После часа гугления я повредил свой собственный принцип и прокомментировал определение типа от заголовка OpenSSL, и к счастью libcurl не использовал тот символ, таким образом, это создало прекрасный.

Обновление: Как указано Jason, эта проблема, кажется, имеет dissapeared с версии 1.0.0a.

Теперь для подтверждения, что поддержка SSL включена для libcurl, выполните следующий код:

curl_version_info_data * vinfo = curl_version_info( CURLVERSION_NOW );
if( vinfo->features & CURL_VERSION_SSL )
    // SSL support enabled
else
    // No SSL
<час>

Простой как это.

48
ответ дан Community 26 November 2019 в 23:45
поделиться

Я сделал "do_nt.bat" для windows 7 rc7100 не забудьте "nmake -f ms \ nt.mak install" для правильного копирования заголовков

спасибо, это очень помогло

1
ответ дан 26 November 2019 в 23:45
поделиться

Пара примечаний в ответ на и / или в дополнение к вышеуказанному ..

Во-первых, если вы не хотите связываться с ActivePerl, клубника Perl потрясающе и отлично работал для этого.

Во-вторых, вместо использования do_ms .bat, я бы порекомендовал предпочитать do_masm , если это возможно, поскольку, согласно install.w32,

это стоит сделать, потому что это будет Результат в более быстрый код: Например, это обычно приведет к 2 раза Ускорение в процессах RSA.

Также построить 0,9,8 л (l) openssl, был кошмаром, поэтому я в конечном итоге сдался и вернулся к 0,9,8 к , который построен и связан (статически) с libcurl 1.9 Без выпуска.

1
ответ дан 26 November 2019 в 23:45
поделиться

При компиляции OpenSSL 1.0.0 в Windows с Visual Studio 2010 в конечном итоге выдавалась ошибка 0x2:

NMAKE: фатальная ошибка U1077: '"C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ VC \ BIN \ cl.EXE "': код возврата' 0x2 '

Stop.

Похоже, что эта ошибка будет выдана из-за флага в файле конфигурации perl, а именно -WX. Как указано в документации MSDN:

Все предупреждения компилятора рассматриваются как ошибки. Для нового проекта лучше всего использовать / WX во всех компиляциях; устранение всех предупреждений гарантирует минимальное количество труднодоступных дефектов кода.

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

5
ответ дан 26 November 2019 в 23:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: