Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    passaggio paramentri COM

    ciao a tutti,
    io ho un COM fatto in questo modo:
    GetHistoricalData (VARIANT Security, LONG Cookie, VARIANT Fields,
    VARIANT StartDate, [VARIANT EndDate], [VARIANT BarSize], [VARIANT BarFields], [VARIANT Results]);

    se provo ad interfacciamo con C#, i variant diventono Object giusto?

    con vS.NET quella funzione io la vedo cosi:
    GetHistoricalData (Object Security, int Cookie, Object Fields,
    Object StartDate, Object EndDate, Object BarSize, Object BarFields, out Object Results);

    però ricevo sempre questo errore:
    No overload for method 'GetHistoricalData' takes '7' arguments
    o
    Argument '8': cannot convert from 'object' to 'out object'


    come posso fare?

  2. #2
    alla fine ci sono riuscito e vi spiego come cosi magari se qualcuno un giorno avrà il mio stesso problema magari capisce.

    praticamente le variabili che devono essere passate e che dotnet vede come object e vb6 come variant devono effettivamente essere del tipo in cui vengono lavorate.

    es.
    nella funzione ho object Data.

    la variabile che devo passare alla funzione deve essere non di tipo object ma del tipo in cui deve essere lavorata quindi in questo caso di tipo DATA.

    inoltre per i parametri opzionali in dot net va passato questo :
    System.Reflection.Missing.Value

    mentre in vb6 si evita direttamente di scrivere il parametro

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127
    msdn propone esempi per Missing.Value solo x vb .net
    questo forse xkè in cs non esistono parametri opzionali ma ti basta eseguire l'overload delle funzioni con + o meno parametri?
    tu volevi tenerti una funzione unica?

  4. #4
    purtroppo la funzione è di un com fatto in vb6 a cui non posso mettere mano.

    in c# anche se obbligato a mettere tutti i campi alla fine risolvi con il Missing.value.


    buono a sapersi ora ho risolto tutto.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.