c++ - 添加可导出结构的数据成员(最后)会导致问题吗?

标签 c++ api struct export

一个可导出的函数有一个结构作为参数之一。这个DLL被很多Exes使用

其中一个 EXE 需要发送一些额外的数据,因此我们在结构的末尾添加了一个成员并分发了 DLL。

现在我的问题是,如果我们将新的 DLL 放在其他不知道额外成员的 EXE 中,会不会引起问题?

DLL 不应尝试访问 EXE 中不存在的结构数据成员。我该如何处理这种情况?

注意:DLL 中不允许添加新的 API。

最佳答案

如果其他函数按值接受 struct,即不是通过指向它的指针,那么是的,很可能会出现问题。您的调用代码将在堆栈上放置一个比接收函数将移除的更大的 struct,从而导致净堆栈增长和普遍的不良情况。

关于c++ - 添加可导出结构的数据成员(最后)会导致问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/886703/

相关文章:

c++ - C++ 中的链表析构函数 : should I delete?

c# - 从网站抓取文件以自动同步数据

java - 从 yahoo api 获取技术指标

c++ - 嵌套结构构造函数和 Union 的问题

c - 如何使用带位域的结构

c++ - 添加到包含 vector 值的无序映射

C++ FP 树或前缀树

c++ - 使用 bluez 5.43 和 DBus 从 BLE 传感器读取广告数据包的正确方法是什么

c++ - Mutex 的锁定/解锁功能应该是 "const"吗?

c - 动态内存分配以反向打印 float 数组