我必须为 C++ 框架构建一个 API,它可以做一些模拟的东西。我已经使用 __declspec(dllexport)
函数创建了一个新类,并将框架构建为 DLL。
这工作正常,我可以在 C# 应用程序中使用该框架。
但是是否有另一种或更好的方法来使用 C++ 创建 API?
最佳答案
导出类的解决方案有一些严重的缺点。您将无法用其他语言编写 DLL,因为它们不支持名称修改。此外,您将无法使用 VS 以外的其他编译器(出于同样的原因)。此外,您可能无法使用其他版本的 VS,因为 MS 不保证该重整机制在不同版本的编译器中保持相同。
我建议使用扁平化的 C 风格界面,例如。
MyClass::Method(int i, float f);
导出为:
MyClass_MyMethod(MyClass * instance, int i, float f);
您可以将它包装在 C# 中以使其再次成为一个类。
关于C++ API - 什么是正确的方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15660048/