Ich habe folgendes Problem: Ich muß aus CANoe (CAN-Bus-Analyse-Software der Firma Vector; Standard in der Automobil-Industrie) eine Liste aller Umgebungsvariablen auslesen.
In der Hilfe von CANoe ist ein Beispiel-Programm gegeben, leider in Visual Basic:
Code: Alles auswählen
Private Sub Form_Load()
Set CANoe = CreateObject("CANoe.Application")
info = CANoe.environment.createinfo.getinfo ' Zweidimensionales Array
For i = LBound(info, 1) To UBound(info, 1)
ListBox1.AddItem (info(i, 0))
Next
End SubDie erste Dimension des Arrays enthält die Variablen-Infos selbst, mit der zweiten Dimension wird festgelegt, ob man den Namen
Was ich also bräuchte, wäre eine Übersetzung des obigen Programms nach Visual C++ / QT 3.2.1
Bereits probiert habe ich folgendes:
Code: Alles auswählen
QAxWidget* pCANoe = new QAxWidget( "CANoe.Application" );
QAxObject* pEnvironment = pCANoe->querySubObject( "Environment" );
// Bis hier hin funktioniert sicher alles, den ich habe schon auf andere Unterobjekte von Environment erfolgreich zugegriffen.
QAxObject* pEnvironmentInfoObject = pEnvironment->querySubObject( "CreateInfo()" );
// Das scheint auch noch zu funktionieren. Zumindest kommt kein Null-Pointer zurückAlternative 1:
Code: Alles auswählen
QVariant EnvironmentInfoArray = pEnvironmentInfoObject->dynamicCall( "GetInfo()" );
QValueList<QVariant> EnvironmentInfoList = EnvironmentInfoArray.asList();
QValueList<QVariant>::Iterator it = pEnvironmentInfoList.begin();
while( it != pEnvironmentInfoList.end() )
{
[...]
}Alternative 2:
Code: Alles auswählen
QAxObject* pEnvironmentInfoArray = pEnvironmentInfoObject->querySubObject( "GetInfo()" );Ich bin für jede Hilfe dankbar!QAxBase::querySubObject: GetInfo(): method or property is not of interface type in (null) (unknown)
Auch habe ich noch nicht so ganz verstanden, wann man querySubObject(...) und wann man dynamicCall(...) nehmen muß. Auch hier bin ich dankbar, wenn jemand eine Erklärung hat
Gruß aus Weissach,
Michael