Можно ли использовать OleVariant для параметра out в процедуре DLL? - PullRequest
6 голосов
/ 08 декабря 2011

Я хочу создать интерфейс, но я чего-то не знаю.

Является ли OleVariant «стандартным» для содержания «стандартной» строки - для передачи и возврата?

function Any(Input : OleVariant; out Output : OleVariant) : integer; stdcall;

Другая сторона может быть .NET, C # или C ++ или Delphi.

Так могут ли они вернуть какой-нибудь "строковый" результат в OleVariant без того, чтобы я пропустил буфер определенного размера для результата?

1 Ответ

11 голосов
/ 08 декабря 2011

Да, OleVariant совершенно безопасно. Вы увидите, что он используется во всех связанных с COM модулях, распространяемых вместе с Delphi, таких как ActiveX, ComSvcs и MSXML. Стандартные модули Windows API используют его, так что вы тоже можете.

Однако, если вы всегда ожидаете строку, вам следует вместо этого выбрать WideString. Это эквивалентно типу Windows BSTR.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...