Codice managed, unmanaged, Marshaling, etc.

venerdì 03 marzo 2006 - 16.31

stormino Profilo | Newbie

Riassumo brevemente la mia situazione:

Ho un'applicazione legacy sviluppata in C++ (Borland) composto da N eseguibili, file di database e dati vari, e una DLL e dispongo *solamente* del codice sorgente della DLL.
Il mio obiettivo e' riscrivere la DLL in modo che funzioni comunque per il programma (che non so cosa fa), cosi' com'e'.
La DLL esporta due funzioni: una funzione non accetta ne' restituisce parametri, l'altra invece ha in ingresso una struttura molto complessa. Implementare la prima funzione e' stato relativamente facile e non ho avuto problemi di sorta, mentre per quanto riguarda la seconda sto patendo le pene dell'inferno.
Ho deciso di agire nel modo seguente: considerando che l'obiettivo e' riscrivere tutto in C#, ma avevo necessita' di esportare funzioni, ho creato una DLL in C++ managed che istanzia la classe scritta in C# e ne richiama i metodi corrispondenti alle funzioni da esportare.
Ora, il problema principale sorge quando ho in ingresso nella seconda funzione la struttura complessa.

Come posso fare a ricevere correttamente in ingresso la struttura nella mia DLL in c++ managed e passare tutto quanto alla funzione C#?

Chissa' se mi sono spiegato bene...
La situazione attuale e' che ho cercato in giro e ho trovato parecchie cose su IJW, codice managed/unmanaged insieme, __gc, __nogc, marshaling, etc. e non so veramente cosa fare. Non so cosa convertire, come convertire... ho le idee completamente confuse! Spero che qualcuno mi sia d'aiuto... nel caso, posso fornire il codice sorgente C++ di tutta la struttura che devo gestire...

Thanks!
Daniele
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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5