Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Problema C# con funzione in OCX
martedì 27 gennaio 2009 - 19.20
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
klaus78
Profilo
| Newbie
2
messaggi | Data Invio:
mar 27 gen 2009 - 19:20
ho importato un oggetto ocx in un progetto C# dichiarandolo in una classe
----
private AxCOMMLib.AxComm oggetto_ocx = new AxCOMMLib.AxComm();
----
Da C# voglio usare una funzione dell'oggetto ocx che è così definita nel codice
di creazione dell'oggetto OCX stesso (in C);
----
afx_msg long ReadMap(long begin, long end, short FAR* pdata);
----
dove pdata è un puntatore a funzione in cui ritornano i valori letti nella locazione di memoria compresa
tra (begin - end)
Il codice in C# è
----
int inizio = 0;
int fine = 20;
short[] value = new short[fine-inizio+1];
oggetto_ocx.ReadMap(inizio, fine, ref value[0])
-----
Così facendo il problema è che in C# mi ritorna solo il primo valore, mentre gli altri sono vuoti.
Insomma come posso fare interagire array?
Da notare che in C# 'short FAR* pdata' viene tradotto come 'ref short pdata'
Qualche idea? Grazie
klaus78
Profilo
| Newbie
2
messaggi | Data Invio:
mer 28 gen 2009 - 15:46
Volevo solo dire che sono riuscito a risolvere il problema:
ho esaminato il codice dell'ocx il quale è basato sull'utilizzo di una comm.dll
Io nel mio codice in C# chiamo direttamente i metodi importati dalla comm.dll tramite dllimport.
Il metodo ReadMap della OCX contiene una chiamata al metodo CommReadMap definito in comm.dll
Nel mio codice C# chiamo direttamente CommReadMap senza passare attraverso ReadMap
[DllImport("imalcomm.dll")]
extern static int CommReadMap(int node, int begin, int end,
short[] pdata);
In questo modo riesco a passare array
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !