在c ++中声明const BYTE *

时间:2010-08-12 19:48:33

标签: c++ winapi pointers certificate

我目前正在尝试拨打this函数调用。这是宣言:

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 个答案:

答案 0 :(得分:8)

你不需要。函数参数是指向const BYTE的指针,这意味着该函数不会更改它指向的字节。一个简单的例子:

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

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

f( & b );
f( a );

您当然需要#include声明BYTE类型的标头。

答案 1 :(得分:0)

您只需声明一个BYTE*,编译器会自动将非const转换为const

答案 2 :(得分:0)

根据documentation

pbEncoded是指向包含要复制的现有编码上下文内容的缓冲区的指针。

答案 3 :(得分:0)

传递给BYTE的常规指针。 const表示在函数内部不会修改指向对象。