在C++中实现对象与主对象的转换

在C++中实现对象与主对象的转换,c++,pointers,C++,Pointers,我想通过调用函数获取私钥的值。。因为我必须在主函数的其他地方使用它,但我无法使它工作。我尝试过在函数中使用和不使用指向rsaPrivate的指针 int main(int argc, char* argv[]) { CryptoPP::RSA::PrivateKey rsaPrivate; getKeysFromPfx(&rsaPrivate); } void getKeysFromPfx(CryptoPP::RSA::PrivateKey *rsaPrivate)

我想通过调用函数获取私钥的值。。因为我必须在主函数的其他地方使用它,但我无法使它工作。我尝试过在函数中使用和不使用指向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

表达式必须具有类类型


根据对这个问题的评论,这里是解决方案


从RSA中删除*并更改。向rsaPrivate调用函数时->。

是否尝试将函数放在主函数之前?您发布的内容中至少缺少一个include。您应该通过引用而不是指针传递rsaPrivate对象,因为这让我怀疑:CryptoPP::RSA::PrivateKey*rsaPrivate但rsaPrivate.BERDecodePrivateKey。。。。我相信。必须改为->私人->什么