请教一个问题(关于ATL)
我使用VS.NET7.0创建一个ATL项目,里面有一个方法
STDMETHODIMP CMySignVerify::MySignMethod(BSTR signData, BSTR* revData)
{
。。。
BYTE *pbSignedBlob;
if(CryptSignMessage(
&SigParams, // Signature parameters
FALSE, // Not detached
1, // Number of messages
MessageArray, // Messages to be signed
MessageSizeArray, // Size of messages
pbSignedMessageBlob, // Buffer for signed message --我想返回这个值
&cbSignedMessageBlob)) // Size of buffer
{
*revData=(BSTR)pbSignedMessageBlob; //我想返回这个值,可是返回的是乱码
MessageBox(NULL,"签名成功","提示",MB_OK);
}
else
{
MessageBox(NULL,"签名失败","提示",MB_OK|MB_ICONERROR);
}
return S_OK;
}
问题是:*revData=(BSTR)pbSignedMessageBlob; //我想返回这个值,可是返回的是乱码,这里把BYTE类型强制转换为BSTR。
请问,BYTE和BSTR之间如何转换?