gpt4 book ai didi

c++ - 如何在 openssl 中添加自己的 rand_poll 实现?

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

我正在努力将 openssl 库移植到 uwp(通用 Windows 10 平台)。标准的 rand_poll 实现似乎不适用于 uwp。我正在考虑添加一个定制的实现。为此,我创建了一个 .cpp 文件(C 中不支持 namespace ,因此我不得不添加一个 cpp 文件),其中包含我自定义的 rand_poll() 实现。我如何将此文件添加到 openssl 构建系统以便使用我的文件而不是 rand_win.c 中的 rand_poll 功能?

非常感谢任何指点和建议。

最佳答案

首先,您需要防止将原始实现链接到您的项目中。为此,您可以使用条件编译,例如在 rand_win.c 中:

#if ! UWP # or some other way to detect UWP
...original RAND_poll implementation...
#endif

然后在您的 .cpp 文件中:

extern "C" int RAND_poll(void)
{
// your impl
}

需要 extern "C" 位才能使编译器将此符号导出为 C 可调用函数,而无需 C++ 名称重整。您可以在实现中使用 C++ 代码。只是不要让任何 C++ 异常逃脱您的函数。

关于c++ - 如何在 openssl 中添加自己的 rand_poll 实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36785991/

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