Параметры AnsiString COM-сервера в Delphi 2009 - PullRequest
0 голосов
/ 20 апреля 2009

У меня есть простой COM DLL с методом, который принимает две строки. В редакторе библиотеки типов delphi эти строки определены как LPSTR. Это переводит к PChar в файле TLB. При обновлении с D2007 до D2009 это стало проблемой, поскольку теперь PChar изменился с PAnsiChar на PWideChar (он все еще становится PChar в файле TLB, когда он генерируется из файла ridl). И интерфейс должен быть совместим с предыдущим ...

Есть ли способ получить PAnsiChar как тип в файле TLB, чтобы он соответствовал предыдущему объявлению в D2007?

1 Ответ

2 голосов
/ 20 апреля 2009

Вы можете изменить сгенерированный код самостоятельно. Возможно, самый простой способ - переопределить PChar:

type
  PChar = PAnsiChar;

поверх сгенерированного блока.

Или просто найдите и замените все вхождения (где это необходимо) PChar на PAnsiChar.

Кстати, это странная COM DLL, так как она не совместима с Automation. Обычно BSTR (WideString в Delphi) используется для строк в COM.

...