在c ++中声明const BYTE*

the*_*tro 4 c++ winapi pointers certificate

我目前正在尝试调用此函数调用.这是宣言:

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
);
Run Code Online (Sandbox Code Playgroud)

如您所见,第三个输入参数调用const BYTE*,它表示您尝试创建的编码证书.如何在c ++中定义这样的变量?

小智 8

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

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

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

f( & b );
f( a );
Run Code Online (Sandbox Code Playgroud)

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