Importare una libreria compilata in borland builder in .NET

lunedì 06 settembre 2010 - 17.32
Tag Elenco Tags  C#  |  .NET 3.5  |  Windows XP  |  Visual Studio 2008

BELENOS Profilo | Junior Member

Salve... come faccio ad importare in un progetto .NET una libreria compilata in borland builder?
Da premettere che di questa libreria ho anche i sorgenti, che puntualmente ho provato a ricompilarmi direttamente in .NET, incontrando mille problemi, alcuni non ancora risolti.
C'è un modo per procedere, in uno o nell'altro caso? E' lo stesso se il mio progetto in .NET è in C# e la libreria è stata scritta in C? Cioè c'è un modo per rendere i due "progetti" compatibili tra di loro?

Grazie.


----------------------------------------------------
NOI SIAMO I BORG!!!
LA RESISTENZA E' INUTILE!!!
----------------------------------------------------

freeteo Profilo | Guru

Ciao,
puoi usare COM (ossia creare un'OCX o cmq una DLL da referenziare nel progetto .net) quindi non hai problemi perchè ti basta appunto andare a referenziarla a livello di progetto e Visual Studio creerà per te un file di "raccordo" (file Interop...) che ti permetterà di usare in .net oggetti creati con altri linguaggi.

Premetto che non conosco Borland ma credo sarà possibile fare una libreria di quel tipo...

Ciao.

Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo

BELENOS Profilo | Junior Member

Ora ho provato ad usare la dllimport, importandomi direttamente un metodo non gestito nel mio codice. Quando compilo è tutto ok, però quando vado a distribuire la release sul dispositivo mobile, l'ambiente mi restituisce il seguente errore: "Impossibile trovare la DLL PInvoke <nome_libreria>".
Ho provato a mettere il path assoluto della libreria (che ho provveduto a mettere nella stessa directory
dell'eseguibile) e solamente il nome della libreria, ma mi dà lo stesso identico errore... francamente non so
più che pensare. Occhi al cielo
----------------------------------------------------
NOI SIAMO I BORG!!!
LA RESISTENZA E' INUTILE!!!
----------------------------------------------------

freeteo Profilo | Guru

>Ora ho provato ad usare la dllimport, importandomi direttamente
Non puoi referenziare la dll direttamente nel progetto che stai sviluppando in vs? Intendo proprio tasto dx->add reference->com e fai "browse" per andare a prenderti la dll...

Ciao.

Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo

BELENOS Profilo | Junior Member

anche facendo così dà all'incirca lo stesso errore, ovvero: "impossibile aggiungere il riferimento perchè la libreria non è raggiungibile o l'oggetto COM non è valido".
Era la prima cosa che ho provato.


----------------------------------------------------
NOI SIAMO I BORG!!!
LA RESISTENZA E' INUTILE!!!
----------------------------------------------------

freeteo Profilo | Guru

Ciao,
sei sicuro che sia "utilizzabile" tramite COMInterop o PInvoke? Guarda se c'è per caso qualche impostazione di compilazione della libreria da Borland che magari ti permette di abilitare queste possibilità.

Ciao.

Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo

BELENOS Profilo | Junior Member

francamente no... non sono sicuro... anche perchè non ho a disposizione il progetto da cui sono partiti per la compilazione della stessa...ho a disposizione dei file che presumo siano i sorgenti che componevano il progetto... ma se provo a crearne uno nuovo mi dà un errore di dipendenze di certi file che non riesco a trovare da nessuna parte. Non so francamente a che santo votarmi....
----------------------------------------------------
NOI SIAMO I BORG!!!
LA RESISTENZA E' INUTILE!!!
----------------------------------------------------

freeteo Profilo | Guru

>il progetto... ma se provo a crearne uno nuovo mi dà un errore
>di dipendenze di certi file che non riesco a trovare da nessuna
>parte. Non so francamente a che santo votarmi....
ma non hai una dll da poter referenziare? forse il tuo progetto a sua volta referenzia qualcosa che ti manca...non saprei darti aiuto maggiore se non abbiamo una dll che possiamo referenziare, o cmq rendere visibile tramite OCX non possiamo fare un Interop e quindi avere il codice invocabile tramite Intellisense...rimane il PInvoke, ma a quanto pare non va nemmeno quello...

Ciao.

Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo

BELENOS Profilo | Junior Member

si le dll ce le ho... dovrebbero essere due che mi interessano maggiormente... ma se provo a referenziarle da codice .NET mi restituisce il seguente errore: "impossibile trovare la dll pinvoke 'xxx'..."
Devo partire da un progetto in visual studio 6 o embedded visual c++ secondo te?
----------------------------------------------------
NOI SIAMO I BORG!!!
LA RESISTENZA E' INUTILE!!!
----------------------------------------------------

freeteo Profilo | Guru

Puoi allegare queste 2 librerie? che provo ad analizzarle un attimo per capire che tipo di dll sono...

Ciao.

Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo

BELENOS Profilo | Junior Member

Provo ad allegartele... al limite te le posso mandare per mail....


ma volevi i sorgenti o le dll nude e crude?



----------------------------------------------------
NOI SIAMO I BORG!!!
LA RESISTENZA E' INUTILE!!!
----------------------------------------------------
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