Initalisierung von ...



  • Hi Leute!

    Bei Folgender Code Zeile bekomme ich die darauf folgende Fehlermeldung.
    Code

    const struct tagVARIANT& Index;
    

    Fehlermeldung

    C:\work\DynaPlot\DynaPlotDlg.cpp(137) : error C2440: 'initializing' : 'const char [1]' kann nicht in 'const struct tagVARIANT &' konvertiert werden
            Ursache: Konvertierung von 'const char [1]' in 'const struct tagVARIANT' nicht moeglich
    

    Kann mir einer von euch sagen wie ich die Variable Index richtig initalisiere!

    Danke schonmal.



  • lass doch mal dass const struct weg!
    und zeig mal ein wenig mehr code. die fehlermeldung macht bei der zeile code wenig sinn!



  • Referenzen musst du initalisieren, da du später nicht mehr ändern kannst worauf sie zeigen.

    btw. musst du das Keyword struct in dem Fall eigentlich nicht mehr angeben bei C++



  • Hi!

    Habe den Code einwenig geändert und bekomme jetzt nur noch über ein Popup Fenster den Fehler Bad type.

    Hier einwenig mehr code:

    CDataCurveDisp K;
    VARIANT Variant;
    K = m_DynaPlot1.GetDataCurves().Item(Variant);
    int test;
    double x[800];
    double y[800];
    int i;
    for (i=1;i=800;i++)
    {
    	x[i]=i;
    	y[i]=i;
    }
    test=50;
    K.GetCurve().UpdateData( 601 - test, x + test, y);
    


  • Was immer du da tust, ein uninitialisierter VARIANT wird dir nicht weiterhelfen. Du musst VariantInit verwenden.

    Falls das "Disp" in CDataCurveDisp für "Dispatch" steht, empfehle ich dir dringend, dich mit den Grundlagen von COM vertraut zu machen.

    Es wäre wirklich hilfreich, wenn du folgende Informationen liefern würdest:
    - Was ist CDataCurveDisp?
    - Wie ist Item() definiert, und was tut es?
    - Was willst du überhaupt machen?



  • CDataCurveDisp ist eine Feststehende Funktion zur erstellung von Grafen mit hilfe von DynaPlot.

    Item() ist definert:

    CDataCurveDisp CDataCurveCollectionDisp::Item(const VARIANT& index)
    {
    	LPDISPATCH pDispatch;
    	static BYTE parms[] =
    		VTS_VARIANT;
    	InvokeHelper(0x5, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, parms,
    		&index);
    	return CDataCurveDisp(pDispatch);
    }
    

    Ich will daten in einen Grafeinzeichnen der mit DynaPlot gezeichnent wird über diese wenigen Codezeilen.


Anmelden zum Antworten