我正在使用密码学api的加密功能(声明为虚拟的乐趣)
//fun declaration
TBool EncryptL(const TDesC8 &aInput, TDes8 &aOutput);
//function calling
TBuf8<10> text;
TBuf8<10> cipher;
text.Copy(_L("Hello"));
iEncryptor.EncryptL(text,cipher); it shows error expression syntax error
//fun definition
TBool CRSAAlgo::EncryptL(const TDesC8 &aInput,TDes8 &aOutput)
{
if(iEncryptor)
{
TInt len = iEncryptor->MaxInputLength();
}
}
我想知道究竟是什么问题
答案 0 :(得分:1)
这里的主要问题,你的编译器抱怨的原因是你使用iEncryptor作为对象或引用,而它可能是一个C ++指针。
要进入下一阶段,请尝试使用:
iEncryptor-&GT; EncryptL(文本,密码);
答案 1 :(得分:-1)
由于您没有发布您从编译器获得的确切错误消息,我必须猜测。
我认为问题在于您显示的 EncryptL 函数需要获取 TDesC8 类型的参数,并传递 TBuf8&lt; 10&gt; 它。除非 TDesC8 是 TBuf8&lt; 10&gt; 的typedef,否则它们是不同的,因此对于编译器不兼容的类型。
Ypou还使用 iEncryptor 作为指针: iEncryptor-&gt; MaxInputLength(); 并在您将错误视为对象的位置: iEncryptor.EncryptL(文本,密码); 。只有一种形式可以是正确的。由于我们没有更多的代码,我不知道哪个,但鉴于后者有错误,我怀疑后者。