关于加密方法

时间:2009-05-21 12:23:14

标签: c++ symbian

我正在使用密码学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();
    }
}

我想知道究竟是什么问题

2 个答案:

答案 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(文本,密码); 。只有一种形式可以是正确的。由于我们没有更多的代码,我不知道哪个,但鉴于后者有错误,我怀疑后者。