2015-10-09 19 views
0

我需要從我的C++ DLL中獲取字符串列表。我知道如何使用這個DLL,並且已經在[code]部分用簡單的數據類型(例如, BooleanInteger。但是現在我需要獲得一個字符串列表來填充組合框,但我不知道我可以從哪裏開始。我讀過如果我想獲得String,我需要在Inno Setup端分配內存。是否可以從C++ DLL接收一個Stringlist?

所以我的問題是:

  • 我怎樣才能收到我的C++ DLL函數或 一個StringList的是能夠填補C++方面的組合框和返回這一個呢? - 如果兩者都可能,Inno Setup端會更容易些?

感謝您的幫助。

回答

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來檢索單個字符串。

+0

兩個函數的好點。我會用C++編寫一個函數,它給了我很多項目,並在一個循環中調用第二個dll函數。在Inno方面,我只知道有價值,但不知道有多少或哪一個。但是我發現可以在inno setup上使用windows句柄。我可以使用HWND組合框來構建C++端,只需在設置中顯示組合框? –

+0

*我可以使用HWND組合框來構建C++端,只是在設置中顯示組合框?*這是一個新問題。在評論中回答這個問題很複雜。 –

+0

你對我的回答需要更多幫助嗎?還是很清楚? –

相關問題