CryptoAPI
От: Lelik  
Дата: 25.12.01 13:16
Оценка:
Здравствуйте!
У меня возник вопрос по поводу криптографии, и использования
функций CAPI в программах на С++.
Вопрос такой:
Если я пытаюсь вызвать какую угодно CryptoAPI функцию, компилятор
выдаёт ошибку, что типа неизвеный идентификатор, хотя все библиотеки
подключены. Может надо какой символ препроцессора объявить, или ещё что?

Заранее спасибо!
Re: CryptoAPI
От: Lexey Россия  
Дата: 25.12.01 13:31
Оценка: 2 (1)
Здравствуйте Lelik, Вы писали:

L>У меня возник вопрос по поводу криптографии, и использования

L>функций CAPI в программах на С++.

CAPI!=CryptoAPI, не путай.

L>Вопрос такой:

L>Если я пытаюсь вызвать какую угодно CryptoAPI функцию, компилятор
L>выдаёт ошибку, что типа неизвеный идентификатор, хотя все библиотеки
L>подключены. Может надо какой символ препроцессора объявить, или ещё что?

#define _WIN32_WINNT 0x500 перед инклюдами.
Re[2]: CryptoAPI
От: The Lex Украина  
Дата: 27.12.01 12:58
Оценка:
Здравствуйте Lexey, Вы писали:

L>#define _WIN32_WINNT 0x500 перед инклюдами.


Это значит, что CryptoAPI можно использовать только в Win NT 5.0, оно же Win 2000?
Голь на выдумку хитра, однако...
Re[3]: CryptoAPI
От: Dima2  
Дата: 27.12.01 13:02
Оценка:
Здравствуйте The Lex, Вы писали:

TL>Здравствуйте Lexey, Вы писали:


L>>#define _WIN32_WINNT 0x500 перед инклюдами.


TL>Это значит, что CryptoAPI можно использовать только в Win NT 5.0, оно же Win 2000?


Можно использовать где хочеш. В MSDN где то было написано по этому поводу.
Re[4]: CryptoAPI
От: The Lex Украина  
Дата: 27.12.01 13:07
Оценка:
Здравствуйте Dima2, Вы писали:

D>Здравствуйте The Lex, Вы писали:


TL>>Здравствуйте Lexey, Вы писали:


L>>>#define _WIN32_WINNT 0x500 перед инклюдами.


TL>>Это значит, что CryptoAPI можно использовать только в Win NT 5.0, оно же Win 2000?


D>Можно использовать где хочеш. В MSDN где то было написано по этому поводу.


Да нет, не факт. Эти дефайники похоже для того и вводятся, чтобы "отсекать лишние функции"...
Голь на выдумку хитра, однако...
Re[5]: CryptoAPI
От: Dima2  
Дата: 27.12.01 13:12
Оценка:
Здравствуйте The Lex, Вы писали:

TL>Да нет, не факт. Эти дефайники похоже для того и вводятся, чтобы "отсекать лишние функции"...


Какие такие лишние.
Я например писал

#define    _WIN32_WINNT    0x0400
#include "wincrypt.h"


И проверял везде Windows95,98,Me,2000,NT
Re[6]: CryptoAPI
От: The Lex Украина  
Дата: 27.12.01 13:23
Оценка:
Здравствуйте Dima2, Вы писали:

D>Здравствуйте The Lex, Вы писали:


TL>>Да нет, не факт. Эти дефайники похоже для того и вводятся, чтобы "отсекать лишние функции"...


D>Какие такие лишние.

D>Я например писал
D>
D>#define    _WIN32_WINNT    0x0400
D>#include "wincrypt.h"
D>

D>И проверял везде Windows95,98,Me,2000,NT

А я хотел писать 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. Так может эти дефайники все же неспроста?
Голь на выдумку хитра, однако...
Re[7]: CryptoAPI
От: Dima2  
Дата: 27.12.01 22:53
Оценка:
Здравствуйте 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.
Re[8]: CryptoAPI
От: The Lex Украина  
Дата: 28.12.01 07:44
Оценка:
Здравствуйте 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. Вот так вот...
Голь на выдумку хитра, однако...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.