2015-10-09 10 views
0

Мне нужно получить список строк из моей C++ DLL. Я знаю, как использовать DLL и уже делаю это несколько раз в разделе [code] с простыми типами данных, например. Boolean или Integer. Однако теперь мне нужно получить список строк, чтобы заполнить поле со списками таким образом, но я понятия не имею, где я могу начать. Я читал, что если я хочу получить String, мне нужно выделить память на стороне Inno Setup.Можно ли получить Stringlist из C++ DLL?

Так что мои вопросы:

  • Как я могу получить StringList из моей C++ функции DLL или есть возможность заполнить поле со списком на стороне C++ и вернуть этот вместо этого? - Если возможно, что будет проще на стороне Inno Setup?

Спасибо за помощь.

ответ

1

Вы можете заполнить поле со списком Inno Setup в коде C++, если вы передадите его HWND в DLL (используйте TWinControl.Handle).


Если вы хотите передать список строк из DLL обратно в Setup Inno, я хотел бы предложить вам добавить две функции в DLL:

function GetComboBoxItemsCount: Integer; 
procedure GetComboBoxItemString(Index: Integer; Str: PChar; MaxLength: Integer); 

Сделать GetComboBoxItemsCount возвратный количество элементов , А затем вызовите GetComboBoxItemString в цикле для извлечения отдельных строк.

+0

Хорошо хорошая точка с двумя функциями. Я бы написал функцию в C++, которая дает мне количество элементов и вызывает вторую функцию dll в цикле. На стороне Inno я просто знаю, что есть ценности, но не знаю, сколько или какой. Однако я только что обнаружил, что можно работать с обработчиками окон в настройке inno. Могу ли я использовать HWND для combobox i build на стороне C++ и просто показать combobox в настройке? –

+0

* Могу ли я использовать HWND для combobox i build на стороне C++ и просто показывать combobox в настройке? * Это для нового вопроса. Это сложный вопрос, на который нужно ответить в комментарии. –

+0

Вам нужна дополнительная помощь в моем ответе? Или это понятно? –

 Смежные вопросы

  • Нет связанных вопросов^_^