Interoperabilità con oggetto COM scritto in Delphi

martedì 22 giugno 2010 - 09.34

matty78 Profilo | Newbie

Ciao a tutti,
sono un sviluppatore (molto a tempo perso...) in Delphi, che per alcuni motivi (assenza del compilatore 64 bit...) sta provando ad utilizzare .Net e C#.

Allora, in un progetto Delphi avevo creato un server COM che veniva utilizzato da un software di terze parti. In pratica utilizzando la TLB fornitami ho creato nella dll Delphi una CoClass che implementa l'interfaccia della TLB.

Ora mi trovo a voler portare questa dll in C#: potrei effettuarne tutta la traduzione (ammetto che non è cosa lunghissima) ma per motivi di tempo ho pensato come soluzione alla creazione di una dll C# che implementi l'interfaccia del software di terze parti (per il caso .Net forniscono un assembly di interoperabilità ) e nei metodi richiami stupidamente i metodi del mio vecchio oggetto COM creato in Delphi.

Intanto: è possibile questa strada?

Partendo a fare ciò ho aggiunto il riferimento al mio oggetto COM nel progetto e volevo creare un istanza di tale oggetto: qui mi sono già fermato...

Dichiaro l'istanza :

private ProgettoDelphi.OggettoDelphi VecchioOggetto; //dove OggettoDelphi è l'interfaccia presente nel mio assembly di interoperabilità creato aggiungendo il riferimento

Poi voglio istanziarlo:

VecchioOggetto= new ProgettoDelphi.OggettoDelphiClass(); //metodo che vedo presente nella classe dell'assembly all'interno del Visualizzatore Oggetti

Però Visual Studio dice "Errore Per il tipo 'ProgettoDelphi.OggettoDelphiClass' non sono definiti costruttori".

Perchè non ci sono costruttori? Non dovrebbero essere automaticamente generati nella crezione dell'assembly importando l'oggetto COM.

In realtà il primo tentativo era stato dichiarare VecchioOggetto non come interfaccia ma appunto come Classe presente nell'assembly ma il compilatore riportava "Errore Impossibile incorporare il tipo di interoperabilità 'ProgettoDelphi.OggettoDelphiClass'. Utilizzare invece l'interfaccia applicabile"
Perchè?

Grazie mille e scusate se ho scritto delle castronerie...

Matteo
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 !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5