C++ 在c+中声明常量字节*+;
我目前正在尝试调用函数调用。声明如下:C++ 在c+中声明常量字节*+;,c++,winapi,pointers,certificate,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_P
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
);
如您所见,第三个输入参数调用常量字节*,它表示您试图创建的编码证书。在C++中,如何定义这样的变量? < p>您只需要声明<代码>字节*/COD>,编译器将自动将非-Cuth> const <代码> s转换为<代码> const <代码> S.< /P> < P>您不需要。函数参数是指向常量字节的指针,这意味着函数不会更改它指向的字节。一个简单的例子:
void f( const BYTE * p ) {
// stuff
}
BYTE b = 42;
BYTE a[] = { 1, 2, 3 };
f( & b );
f( a );
当然,您需要包含声明字节类型的标题。根据以下内容:
pbEncoded是指向缓冲区的指针,缓冲区包含要复制的现有编码上下文内容。将常规指针传递到字节。那里的
常量
表示指向的对象不会在函数中被修改。@GMan我知道,这就是为什么我只问他们,在绝望的希望中,落选者可能会解释他们自己。同意-答案完全正确。@Neil:也许一个老派的微软狂热者希望用匈牙利语回答这个问题。或者可能是因为错过了一个代码>。不管怎样,+1表示正确。@Mike我通常在发布前编译真正的代码,但像这样的问题取决于我的代码编写能力-谢谢:-)谢谢你,Neil。我的意思是,指向的对象不会被修改。当通过值、const
或其他方式传递时,指针本身当然无法修改。固定的