PDA

View Full Version : Migrare da Visual Studio 2003 al 2010 (.NET)


graffio83
22-11-2011, 15:13
Ciao, aprendo il mio progetto VS 2003 (c++ .NET) in VS2010 fa una conversione e fin qui tutto ok.

appena compilo il debug mi restituisce moltissimi errori.
Ci perdo le speranze o devo semplicemente includere / escludere qualcosa?:mc:

grazie

Kralizek
22-11-2011, 15:14
beh magari se ci dici che errori ottieni? ;)

(Output => Build)

graffio83
22-11-2011, 15:36
eh si... ti dico gli errori... cosė ci riuscirebbe chiunque... :D


Allora in prima Battuta ottengo:


error C3867: '&MyProject::FormPrefixXML::OKPrefImg_Click': chiamata di funzione senza elenco di argomenti; utilizzare 'MyProject::FormPrefixXML::OKPrefImg_Click' per creare un puntatore al membro

'System::EventHandler': un costruttore di delegato richiede 2 argomento/i

...
...
...

fatal error C1189: #error : Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]


Le prime 2 righe si ripetono per pių di un controllo ma tutti dello stesso Forms (Gli altri forms sembrano non avere problemi)

Allora io vado nel setting e come richiesto (dall'ultima riga) attivo MFC shared dll version

a Questo punto gli errori scritti su si ripetono anche per tutti gli altri controlli in tutti i forms che compongono il mio progetto.

Kralizek
22-11-2011, 16:21
ops non avevo visto si trattasse di c++/cli di cui non ne so un hazzo.

tomminno
22-11-2011, 23:25
Sicuro che l'errore C3867 sia esattamente come l'hai riportato e non all'inverso?
Perchč dovrebbe essere:

error C3867: 'MyProject::FormPrefixXML::OKPrefImg_Click': chiamata di funzione senza elenco di argomenti; utilizzare '&MyProject::FormPrefixXML::OKPrefImg_Click' per creare un puntatore al membro


L'errore che ottieni deriva dal fatto che il 2003 accettava puntatori a metodo anche senza la & davanti, nelle versioni successive questo non č pių ammesso come previsto dallo standard a cui il 2003 non era perfettamente aderente.

graffio83
23-11-2011, 08:55
Ciao, alla fine ho deciso di rinunciare, ho visto che il 2010 per c++/CLI non supporta neanche l'intelli sense, cosa non indispensabile ma sicuramente utile.

comunque anche io ricordo che il debugger diceva l'inverso nell'errore, eppure ho semplicemente fatto copia e incolla...:muro:

A questo punto faccio un'altra domanda, se ho delle funzioni scritte in C in dei file e includo questi file ad un progetto c# posso usare queste funzioni da C#?

č un giorno che ci gioco e devo dire mi piace proprio...

tomminno
23-11-2011, 09:21
Ciao, alla fine ho deciso di rinunciare, ho visto che il 2010 per c++/CLI non supporta neanche l'intelli sense, cosa non indispensabile ma sicuramente utile.

comunque anche io ricordo che il debugger diceva l'inverso nell'errore, eppure ho semplicemente fatto copia e incolla...:muro:

A questo punto faccio un'altra domanda, se ho delle funzioni scritte in C in dei file e includo questi file ad un progetto c# posso usare queste funzioni da C#?

č un giorno che ci gioco e devo dire mi piace proprio...

E no, non puoi.
Devi farci un wrapper tramite una libreria C++\Cli. A quel punto la puoi usare anche in C#.

[Edit]
L'alternativa č utilizzare il P/Invoke avendo creato prima una libreria con i sorgeti C

graffio83
23-11-2011, 18:02
... La vedo dura!!!
Visto che non l'ho mai fatto anche se so cosa sono, mi sai consigliare siti/appunti/libri on line dove imparare a fare una libreria dai miei sorgenti?

grazie :)