Здравствуйте!
У меня возник вопрос по поводу криптографии, и использования
функций CAPI в программах на С++.
Вопрос такой:
Если я пытаюсь вызвать какую угодно CryptoAPI функцию, компилятор
выдаёт ошибку, что типа неизвеный идентификатор, хотя все библиотеки
подключены. Может надо какой символ препроцессора объявить, или ещё что?
Здравствуйте Lelik, Вы писали:
L>У меня возник вопрос по поводу криптографии, и использования L>функций CAPI в программах на С++.
CAPI!=CryptoAPI, не путай.
L>Вопрос такой: L>Если я пытаюсь вызвать какую угодно CryptoAPI функцию, компилятор L>выдаёт ошибку, что типа неизвеный идентификатор, хотя все библиотеки L>подключены. Может надо какой символ препроцессора объявить, или ещё что?
Здравствуйте The Lex, Вы писали:
TL>Здравствуйте Lexey, Вы писали:
L>>#define _WIN32_WINNT 0x500 перед инклюдами.
TL>Это значит, что CryptoAPI можно использовать только в Win NT 5.0, оно же Win 2000?
Можно использовать где хочеш. В MSDN где то было написано по этому поводу.
Здравствуйте Dima2, Вы писали:
D>Здравствуйте The Lex, Вы писали:
TL>>Здравствуйте Lexey, Вы писали:
L>>>#define _WIN32_WINNT 0x500 перед инклюдами.
TL>>Это значит, что CryptoAPI можно использовать только в Win NT 5.0, оно же Win 2000?
D>Можно использовать где хочеш. В MSDN где то было написано по этому поводу.
Да нет, не факт. Эти дефайники похоже для того и вводятся, чтобы "отсекать лишние функции"...
Здравствуйте Dima2, Вы писали:
D>Здравствуйте The Lex, Вы писали:
TL>>Да нет, не факт. Эти дефайники похоже для того и вводятся, чтобы "отсекать лишние функции"...
D>Какие такие лишние. D>Я например писал D>
А я хотел писать TryEnterCriticalSection(...), так оная компилируется только с #define _WIN32_WINNT 0x0400 и в документации чистым английским языком написано:
Requirements Windows NT/2000 or later: Requires Windows NT 4.0 or later. Windows 95/98/Me: Unsupported.
А требования для программы были: работать везде, в т.ч. и под Win 95. Так может эти дефайники все же неспроста?
Здравствуйте The Lex, Вы писали:
TL>А я хотел писать TryEnterCriticalSection(...), так оная компилируется только с #define _WIN32_WINNT 0x0400 и в документации чистым английским языком написано:
TL>Requirements TL> Windows NT/2000 or later: Requires Windows NT 4.0 or later. TL> Windows 95/98/Me: Unsupported.
TL>А требования для программы были: работать везде, в т.ч. и под Win 95. Так может эти дефайники все же неспроста?
Чтой-то я не пойму каким макаром TryEnterCriticalSection связана с CryptoAPI.
Если TryEnterCriticalSection не поддерживается в 95/98/Me, то и не применяй ее
там причем тут CryptoAPI.
Здравствуйте Dima2, Вы писали:
D>Чтой-то я не пойму каким макаром TryEnterCriticalSection связана с CryptoAPI. D>Если TryEnterCriticalSection не поддерживается в 95/98/Me, то и не применяй ее D>там причем тут CryptoAPI.
RTFM: (Microsoft Platform SDK, February 2001 Edition)
— Using the SDK Headers
(...\MSDN\sdkintro.chm:/hh/html/usage_8xgz.htm)
— INFO: Using _WIN32_WINNT with the Platform SDK Header Files
(...\MSDN\kbwindev.chm:/Source/win32sdk/q169088.htm)
У меня, правда, локальная установка MSDN, поэтому ссылки вам придется скорректировать. Ну, я думаю, что вы сами с усами (я например ношу усы ) и сможете это сделать.
А статьи эти я нашел, просто набрав в "Поиск" _WIN32_WINNT. Вот так вот...