Объявление const BYTE * в c ++ - PullRequest
       3

Объявление const BYTE * в c ++

4 голосов
/ 12 августа 2010

Я сейчас пытаюсь позвонить на этот вызов функции. Вот декларация:

const void* WINAPI CertCreateContext(
  __in      DWORD dwContextType,
  __in      DWORD dwEncodingType,
  __in      const BYTE *pbEncoded,
  __in      DWORD cbEncoded,
  __in      DWORD dwFlags,
  __in_opt  PCERT_CREATE_CONTEXT_PARA pCreatePara
);

Как видите, третий входной параметр вызывает const BYTE *, который представляет закодированный сертификат, который вы пытаетесь создать. Как определить такую ​​переменную в c ++?

Ответы [ 4 ]

8 голосов
/ 12 августа 2010

Вам не нужно.Параметр функции - это указатель на const BYTE, что означает, что функция не будет изменять байт, на который она указывает.Простой пример:

void f( const BYTE * p ) {
    // stuff
}

BYTE b = 42;
BYTE a[] = { 1, 2, 3 };

f( & b );
f( a );

Вам, конечно, нужно #include заголовок, который объявляет тип BYTE.

0 голосов
/ 12 августа 2010

Передайте обычный указатель на BYTE. const указывает на то, что указанный объект не будет изменен внутри функции.

0 голосов
/ 12 августа 2010

Согласно документации :

pbEncoded - это указатель на буфер, который содержит существующее закодированное содержимое контекста для копирования.

0 голосов
/ 12 августа 2010

Вам нужно только объявить BYTE*, компилятор автоматически приведёт не-const с к const с.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...