У меня есть программа Delphi 2007, которая вызывает DLL-библиотеку Delphi 2010.Программа большая и еще не перенесена на 2010 год, поэтому я не могу изменить это прямо сейчас.
Я использую модуль SimpleShareMem для передачи строк, но также пробовал ShareMem с borlndmm.dll.
Для одной функции я теперь передаю строку из программы Delphi 2007 в dll (следовательно, AnsiString).При отладке dll эта AnsiString выглядит нормально и может быть просмотрена в списке наблюдения.Но если я просто думаю, как
AnAnsiString := PassedAnsiString;
, то переменная AnAnsistring получает значение '???????'#0#0#0'???A'
, но PassedAnsiString все еще читается в списке наблюдения.Также к строке добавляется, как
AnAnsiString := PassedAnsiString + NotPassedAnsiString;
, в качестве значения используется '???????'#0#0#0'???A'
.
В чем проблема?Это выпуск 2007 года <-> 2010?Как это исправить?Спасибо за помощь.