在函数c ++中从main更改对象

时间:2018-03-26 08:52:18

标签: c++ pointers

我想通过调用函数来获取rsaPrivate键的值..因为我必须在main函数中的其他位置使用它,但我不能使它工作。我已尝试在函数中使用和不使用rsaPrivate指针。

int main(int argc, char* argv[]) {
    CryptoPP::RSA::PrivateKey rsaPrivate;
    getKeysFromPfx(&rsaPrivate);
}


void getKeysFromPfx(CryptoPP::RSA::PrivateKey *rsaPrivate) {
    try
    {
        rsaPrivate.BERDecodePrivateKey(queue, false /*paramsPresent*/, queue.MaxRetrievable());

        // BERDecodePrivateKey is a void function. Here's the only check
        // we have regarding the DER bytes consumed.
        assert(queue.IsEmpty());

        bool valid = *rsaPrivate.Validate(prng, 3);
        if (!valid)
        std::cerr << "RSA private key is not valid" << std::endl;
    catch (const Exception& ex)
    {
        std::cerr << ex.what() << std::endl;
        exit(1);
    }

}

错误出现在rsaPrivate所说的函数中

  

表达式必须具有类类型

1 个答案:

答案 0 :(得分:0)

通过这个问题的评论,这是解决方案。

从rsaPrivate中删除*,并在调用rsaPrivate函数时将.更改为->