|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Apr 2010
Città: Leuven
Messaggi: 667
|
[python/C#] Accedere a un modulo scritto in C# da python
Buona sera,
Ho l'esigenza di caricare in python un modulo scritto in C#. Come si fa? Se compilo il modulo come dll posso usare ctypes? Se si cosa cambia rispetto a una dll scritta in C? C'e' un'atra via usando qualcosa come le estensioni per windows di Mark Hammond?
__________________
L'elettronica digitale non esiste, è solo elettrotecnica con interruttori piccoli!
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Python for .NET
Funziona davvero molto bene. Unico limite: le classi C#/.NET non riescono a vedere i membri di una classe Python. Ed è il motivo per cui sono passato ad IronPython per un mio progetto. Ma se non hai quest'esigenza (io sto lavorando con WPF), allora sei a posto.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Apr 2010
Città: Leuven
Messaggi: 667
|
ma posso installarci su moduli esterni?
Mi spiego bene. Sto facendo un programma che prende dei dati da dei file id testo e riempire un file word. Al momento sto usando le estensioni per windows di mark hammond e riesco a fare praticamente tutto. Ora... Mi sono accorto che scorrere un documento word grosso e' terribilmente lento e pure abbastanza complicato, quindi ho pensato: 1) mi scrivo la libreria che si interfaccia con word in c#, cosi' tra gli altri non devo tradurmi gli esempi che trovo su msdn 2) carico questa libreria nel mio programma python e la uso. Non posso usare iron python perche' non ci gira pyVISA e mi sa neanche numpy, scipy, matplotlib piu' le varie schifezze scritte da Agilent in C che ho dovuto wrappare fin ora :s. Comunque ora mi cerco la documentazione, grazie per la dritta
__________________
L'elettronica digitale non esiste, è solo elettrotecnica con interruttori piccoli!
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Ti spiego brevemente cos'è Python for .NET e come funziona.
E' lo stesso identico Python (CPython) che usiamo normalmente, a cui semplicemente si aggiunge una DLL (che fa da bridge col mondo .NET) e una libreria (che s'imposta come modulo) compilati rispettivamente per la versione di (C)Python che utilizzi, e quella di .NET (ad esempio la 4.0). Con questa libreria puoi importare le librerie .NET e usare classi e funzioni / metodi come se fossero oggetti nativi di CPython. Lato .NET, come dicevo, non puoi vedere i membri di una classe Python, ma i tipi fondamentali di Python vengono convertiti tranquillamente. In pratica non puoi fare binding di oggetti CPython dentro istanze di classi .NET, e non puoi impostare callback di CPython su oggetti .NET.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Apr 2010
Città: Leuven
Messaggi: 667
|
Grazie dell'aiuto
Purtroppo il collo di bottiglia è proprio word, quindi non ho risolto niente. Non mi resta che pazientare il tempo necessario
__________________
L'elettronica digitale non esiste, è solo elettrotecnica con interruttori piccoli!
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Capito.
Una piccola, ma importante, correzione: puoi utilizzare funzioni/metodi di Python come delegate e per gli eventi. L'unica cosa che, al momento, sembra rimanere fuori è il binding dei membri di una classe Python con gli oggetti .NET.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:11.



















