是否可以从C ++ DLL接收Stringlist?

时间:2015-10-09 05:46:15

标签: inno-setup dllimport pascalscript

我需要从我的C ++ DLL中获取一个字符串列表。我知道如何使用DLL并且已经在[code]部分中使用简单的数据类型多次执行此操作,例如BooleanInteger。但是现在我需要得到一个字符串列表以这种方式填充组合框,但我不知道我可以从哪里开始。我已经读过如果我想获得String我需要在Inno Setup端分配内存。

所以我的问题是:

  • 如何从C ++ DLL函数或者接收字符串列表 是否可以填写C ++端的组合框并返回此组合框? - 如果两者都可能,Inno Setup方面会更容易吗?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

如果将其HWND传递给DLL(使用TWinControl.Handle),则可以在C ++代码中填充Inno Setup组合框。

如果要将DLL中的字符串列表传递回Inno Setup,我建议您为DLL添加两个函数:

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

GetComboBoxItemsCount返回项目数。然后在循环中调用GetComboBoxItemString以检索单个字符串。