Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/143.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将UniGui Delphi代码翻译成C++;建设者 如何将此代码翻译成C++?UniGui组件 v应收账 FrmList:TList; I:整数; Frm:TUniBaseForm; 开始 FrmList:=UniSession.FormsList; UniListBox1.清晰; 对于I:=0到FrmList.Count-1 do 开始 Frm:=FrmList[I]; UniListBox1.Items.Add(Frm.Name+“”+Frm.ClassName); 结束;_C++_Delphi_Types_C++builder - Fatal编程技术网

将UniGui Delphi代码翻译成C++;建设者 如何将此代码翻译成C++?UniGui组件 v应收账 FrmList:TList; I:整数; Frm:TUniBaseForm; 开始 FrmList:=UniSession.FormsList; UniListBox1.清晰; 对于I:=0到FrmList.Count-1 do 开始 Frm:=FrmList[I]; UniListBox1.Items.Add(Frm.Name+“”+Frm.ClassName); 结束;

将UniGui Delphi代码翻译成C++;建设者 如何将此代码翻译成C++?UniGui组件 v应收账 FrmList:TList; I:整数; Frm:TUniBaseForm; 开始 FrmList:=UniSession.FormsList; UniListBox1.清晰; 对于I:=0到FrmList.Count-1 do 开始 Frm:=FrmList[I]; UniListBox1.Items.Add(Frm.Name+“”+Frm.ClassName); 结束;,c++,delphi,types,c++builder,C++,Delphi,Types,C++builder,我对Frm:=FrmList[I]有问题。我试过: frm=UniSession->FormsList->Items[i] E2034无法将“void*”转换为“TUniBaseForm*” frm=dynamic_cast(UniSession->FormsList->Items[i]) E2307类型“void”不是具有虚拟函数的已定义类 frm=dynamic_cast(UniSession->FormsList[i]) E2031无法从“TList”强制转换为“TUniBaseForm*

我对
Frm:=FrmList[I]有问题。我试过:

frm=UniSession->FormsList->Items[i]

E2034无法将“void*”转换为“TUniBaseForm*”

frm=dynamic_cast(UniSession->FormsList->Items[i])

E2307类型“void”不是具有虚拟函数的已定义类

frm=dynamic_cast(UniSession->FormsList[i])

E2031无法从“TList”强制转换为“TUniBaseForm*”


Delphi允许将非类型指针(
void*
在C++中)分配给另一个类型指针,而无需强制转换。C++没有,需要一个显式的cj.

您的第二次尝试是正确的,但是您需要使用
静态\u cast
重新解释\u cast
,而不是
动态\u cast
,例如:

TUniBaseForm*Frm=static_cast(FrmList->Items[i]);

TUniBaseForm*Frm=reinterpret_cast(FrmList->Items[i]);
见以下相关问题:

(void*)frm=…
?或者C不允许数据类型左值?也,