Не вызовет ли добавление членов данных (в конце) экспортируемой структуры проблемы? - PullRequest
0 голосов
/ 20 мая 2009

Экспортируемая функция имеет структуру в качестве одного из параметров. Эта DLL используется многими Exes

Один из EXE должен отправить некоторые дополнительные данные, поэтому мы добавили одного члена в конец структуры и распределили DLL.

Теперь мой вопрос: если мы поместим новую DLL в другие EXE-файлы, которые не знают о дополнительном элементе, это вызовет проблемы?

DLL не должна пытаться получить доступ к элементу данных структуры, которого нет в EXE. Как мне справиться с этой ситуацией?

Примечание. Добавление нового API в DLL запрещено.

1 Ответ

1 голос
/ 20 мая 2009

Если другие функции принимают значение struct по значению, т. Е. Не беря указатель на него, то да, скорее всего, будут проблемы. Ваш вызывающий код поместит в стек больше struct, чем удалит принимающая функция, что приведет к росту чистого стека и ухудшению ситуации.

...