一个可导出的函数有一个结构作为参数之一。这个DLL被很多Exes使用
其中一个 EXE 需要发送一些额外的数据,因此我们在结构的末尾添加了一个成员并分发了 DLL。
现在我的问题是,如果我们将新的 DLL 放在其他不知道额外成员的 EXE 中,会不会引起问题?
DLL 不应尝试访问 EXE 中不存在的结构数据成员。我该如何处理这种情况?
注意:DLL 中不允许添加新的 API。
最佳答案
如果其他函数按值接受 struct
,即不是通过指向它的指针,那么是的,很可能会出现问题。您的调用代码将在堆栈上放置一个比接收函数将移除的更大的 struct
,从而导致净堆栈增长和普遍的不良情况。
关于c++ - 添加可导出结构的数据成员(最后)会导致问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/886703/