| Ste Dev |
Interoperabilità con DLL Win32
Sto iniziando a scrivere del codice di wrapper per "wrapperizzare" alcune funzioni presenti in alcuni miei moduli win32 per poterle utilizzare in .NET.
Ad esempio come faccio a scrivere il prototipo per importare questa funzione ? UINT nSize ovviamente lo scrivo come uint e gli altri 2 parametri ? Ci sono delle tabelle nella documentazione dove reperire queste informazioni su come "tradurre" i tipi da unmanaged a managed ? bool F (LPDWORD pdw, LPCSTR pch, UINT nSize); |
| Corrado Cavalli |
Re: Interoperabilità con DLL Win32
> bool F (LPDWORD pdw, LPCSTR pch, UINT nSize);
Dipende da quale linguaggio usi, nel tuo caso potrebbe essere Declare function F Lib "..." (ByRef pdw as Int32, ByVal pch as StringBuilder, Byval nSize as Int32) Oppure usa [DllImport] nel caso di C# (valido comunque anche per VB.NET) Se la Dll non modifica il contenuto del buffer puoi anche passarlo com ByVal pch as String In MSDN c'e' parecchia roba, devi solo cercare... HTH Corrado |
| Ste Dev |
Re: Interoperabilità con DLL Win32
Ultima cosa:
la mia DLL modifica il contenuto del buffer. Come imposto il prototipo (ricordi LPDWORD pdw, LPCSTR pch)... ho un problemino in quanto la stringa (ovvero il nome completo della DLL= che passo all'attributo DllImport deve necessariamente essere una costante e non una stringa che ottengo durante il runtime. Il percorso della DLL Win32 io purtroppo lo trovo scritto in una chiave del registro ! hai qualche idea ??? GRAZIE |
| Corrado Cavalli |
Re: Interoperabilità con DLL Win32
Non saprei, solitamente la Dll si trova in posizioni ben note (application path o WinDir/Sys32) ma come veniva utilizzata in precedenza?, facevi una LoadLibrary recuperavi il puntatore alla funzione, ecc
Ci sono problemi a etetrla nell application path? Corrado |
| Ste Dev |
Re: Interoperabilità con DLL Win32
La caricavo nei miei vecchi applicativi in MFC mediante LoadLibrary, mediante GetProcAddress o qualcosa di simile recuperavo il puntatore alla funzione.
Ma potrei pensare di utilizzarla nell'application path anche se non è il massimo !!! Se ti viene in mente qualche idea !!!!! Grazie Ciao |