【发布时间】:2020-07-30 08:05:24
【问题描述】:
如何将这段代码翻译成 C++? UniGui 组件。
var
FrmList : TList;
I : Integer;
Frm : TUniBaseForm;
begin
FrmList := UniSession.FormsList;
UniListBox1.Clear;
for I := 0 to FrmList.Count - 1 do
begin
Frm := FrmList[I];
UniListBox1.Items.Add(Frm.Name + ' ' + Frm.ClassName );
end;
Frm := FrmList[i]; 有问题。我试过了:
frm = UniSession->FormsList->Items[i];
E2034 无法将 'void *' 转换为 'TUniBaseForm *'
frm = dynamic_cast<TUniBaseForm*>(UniSession->FormsList->Items[i]);
E2307 类型 'void' 不是具有虚函数的已定义类
frm = dynamic_cast<TUniBaseForm*>(UniSession->FormsList[i]);
E2031 无法从“TList”转换为“TUniBaseForm *”
【问题讨论】:
-
(void *) frm = ...?还是 C 不允许数据类型化 LValues?另外,tutorialspoint.com/cprogramming/c_unions.htm
标签: c++ delphi types c++builder