gpt4 book ai didi

C++ 'invalid conversion from ‘void*’ 到 ‘crypto_aes_ctx*’

转载 作者:太空宇宙 更新时间:2023-11-04 05:56:47 25 4
gpt4 key购买 nike

为了感受 vector 和并行化,我目前正在尝试使用 VC ( http://code.compeng.uni-frankfurt.de/projects/vc ) 并行化我的程序。我的程序是用C写的,但是VC需要用C++。所以我将文件重命名为 .cpp 并尝试编译它们。我得到三个编译错误,它们都是一样的

error: invalid conversion from ‘void*’ to ‘crypto_aes_ctx*’

代码如下

int crypto_aes_set_key(struct crypto_tfm *tfm, const uint8_t *in_key,
unsigned int key_len)
{
struct crypto_aes_ctx *ctx = crypto_tfm_ctx(tfm);
uint32_t *flags = &tfm->crt_flags;
int ret;
ret = crypto_aes_expand_key(ctx, in_key, key_len);
if (!ret)
return 0;

*flags |= CRYPTO_TFM_RES_BAD_KEY_LEN;
return -EINVAL;
}

我怎样才能解决这个问题,让我的代码与 C++ 编译器一起工作?

最佳答案

C++ 中的类型比 C 更严格,因此您必须使用转换来告诉编译器 void 指针实际是什么。

struct crypto_aes_ctx *ctx = (struct crypto_aes_ctx*) crypto_tfm_ctx(tfm);

请注意,我使用的是 C 风格的强制转换,以防您想继续使用 C 中的代码。对于 C++,您可以使用 reinterpret_cast。 .

关于C++ 'invalid conversion from ‘void*’ 到 ‘crypto_aes_ctx*’,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26099428/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com