gpt4 book ai didi

c++ - 如何制作不需要用户使用特定版本的 Visual Studio 的 C++ API?

转载 作者:行者123 更新时间:2023-11-28 06:10:06 29 4
gpt4 key购买 nike

我创建了一个 C++ API,目前只能在特定版本的 Visual Studio (2008) 上运行。基本上,我有一个 C++ DLL(以及该 DLL 所依赖的其他库)全部使用 Visual Studio 2008 编译。这对我们的用户来说是个大问题,因为他们将运行较新版本的 Visual Studio。我需要找出一种方法来创建独立于平台的 C++ API。我听说这样做的一种方法是用 C 包装所有接口(interface)方法。这是解决这个问题的正确方法吗?我如何将 C++ 代码包装在 C 中,这样用户就不会绑定(bind)到特定版本的 Visual Studio(并且还能够支持 Linux 环境)?

最佳答案

由于 abi 可以在不同版本的 visual studio 之间发生变化,因此您需要展平您的类(class)。正如您所说,您将类包装在 C 接口(interface)中,然后您将能够使用您想要的任何编译器。为此,您可以使用 extern "C"。它将强制对您的方法使用 C Linkage。

extern "C"的快速示例

extern "C"
{
void myExternCFunction(int* outParam);
}

//Later in the code
void myExternCFunction(int* outParam)
{
*outParam = 42;
}

这是一个 stackoverflow关于 extern "C"的帖子
IsoCpp link关于外部“C”

如果你不知道abi是什么,长话短说,它描述了如何将参数发送到方法,如何调用方法...

这是一个 article关于阿比

关于c++ - 如何制作不需要用户使用特定版本的 Visual Studio 的 C++ API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31435223/

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