Мое приложение скомпилировано с Delphi 2010. Это приложение загружает скомпилированную DLL Delphi 7, которая загружает скомпилированную DLL Delphi 2010.
D2010 app LOADS D7 DLL LOADS D2010 DLL
Экспортируемые функции DLL-библиотеки D7 используют Widestrings
, а экспортируемые функции DLL-библиотеки Delphi 2010 используют strings
.
Как мы все знаем, strings
в Delphi 2010 - это Unicode (2 байта), а в Delphi 7 - Ansi (1 байт).
Все мои тесты показывают, что он работает, несмотря на то, что не должен. Мне интересно:
Почему это работает?
Что может пойти не так?
Какой диспетчер памяти следует использовать (DLL-библиотека диспетчера памяти Delphi 2010 или Delphi 7)