Compilierfehler..



  • Hallo allerseits,

    ich versuche eine Oscilloskop (Agilent U27002A) anzusteuern. Was ich erreichen will ist die Messdaten in einer separaten Datei zu speichern.

    Das ist mein Code:

    #include "stdafx.h"
    #import "IviDriverTypeLib.dll" no_namespace
    #import "IviScopeTypeLib.dll" no_namespace
    #import "AgU2701A.dll" no_namespace
    
    int main()
    {
    HRESULT hr = CoInitialize(NULL);
    if(!SUCCEEDED(hr)) {return 1;}
    // Create an instance of the driver
    IAgilentU2701APtr Driver(__uuidof(AgilentU2701A));
    // ReadFullWaveform Statement
    SAFEARRAY *Data = NULL;
    long Length = 0;
    long *pLength = &Length;
    // Create SafeArray
    Data = ::SafeArrayCreateVector(VT_ARRAY,0,0);
    Driver->Measurements->GetItem("Channel1")->ReadFullWaveform(&Data, pLength);
    // Destroy SafeArray for freeing memory
    ::SafeArrayDestroy(Data);
    }
    

    Wenn ich das ganze jedoch compilieren will, kriege ich eine Exception in agu2701a.tli. Siehe hier: http://www7.pic-upload.de/04.12.12/6sg317kes5kp.jpg

    Das Problem ist dass der Error in dem programmierten Teil vom Hersteller auftritt. Kann einer erkennen woran das liegt?

    Ich habe auch schon im Forum des Herstellers nachgefragt, allerdings konnte mir nicht weitergeholfen werden.

    Gruß



  • Du musst einfach die Exception abfangen und reinschauen, was denn die genaue Meldung ist!

    try
       {
          // ... 
       }
       catch(_com_error& e)
       {
          // ...
       }
    

    Vermutlich hast Du keine Messung getriggert...



  • Hmm okay,

    allerdings kommt bei

    try{
    	Driver->Measurements->GetItem("Channel1")->ReadFullWaveform(&Data, pLength);
    	}
    	catch(_com_error& e){
    	     printf("%s",e);
    	}
    

    Es kam aber nur ein Ascii wirrwarr als Fehlermeldung herraus.

    Die Messung läuft nebenher, allerdings starte ich sie nicht mit dem Programm sondern manuell mit der Herstellersoftware, könnte das das Problem sein?

    Gruß



  • Du solltest mal in der Hilfe nachschauen, was "_com_error" ist... es ist auf jeden Fall kein String, deshalb sieht Deine Ausgabe vermutlich komisch aus...
    http://www.lmgtfy.com/?q=_com_error


  • Mod

    Es gibt ja auch einen tollen Debugger in dem man sich solche Variablen auch einfachst ansehen kann...


Log in to reply