c++ - Protocol Buffers with dll 编程 c++

标签 c++ dll protocol-buffers

<分区>

我正在尝试用 C++ 为 rFactor 编写一个插件,我想使用 Protocol Buffers 来序列化所有数据并使用套接字发送它。我在我开发的其他项目中成功尝试了 protobuf,但我在这个示例中遇到了一些错误。

Error C2440 'initializing': Can't convert 'void *(__cdecl *)(size_t)' to 'void *(__fastcall *)(size_t)' InternalsPlugin c:..\include\google\protobuf\arena.h 150

我不明白为什么会这样,因为它与其他项目一起正常工作...我迷路了...有什么想法吗?

最佳答案

windows 有不同的调用约定。调用函数时,需要指定使用的调用约定。在您的情况下,您的函数指针设置为使用 __cdecl 调用约定(Windows 上 C 或 C++ 中的默认调用约定)。

要解决您的问题,您可能需要在函数指针声明中包含显式调用约定声明。

没有更多细节,我无法提供更好的帮助。

关于c++ - Protocol Buffers with dll 编程 c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37886539/

相关文章:

c++ - protobuf C++ 编译器的 bazel 规则

c++ - 链接错误,即使我包含了标题和库(这是自编译的)

c++ - 派生类的析构函数发生了什么?

c# - 如何将 C# dll 导入 python

c++ - 可以跨 dll 边界返回 const 引用/指向 std::vectors 的指针吗?

c++ - 如何控制 C++ DLL 调试符号加载?

c++ - 为什么这个 C++ 输出与我预期的不同?

c++ - 将 T* 数组(Jet* 或 float*)转换为 cv::Mat<CV_32f>

c++ Netbeans 7.2.1 正确链接 boost 库

java - 如何在 Cloudera hadoop 中使用外部 jar?