Compatibilità vecchi programma

lunedì 06 marzo 2006 - 15.59

yag2 Profilo | Newbie

salve a tutti

vorrei sapere cosa bisogna "fare" per potere usare i template così normalmente come si faceva senza .net
col framework .net

il problema e che ho dei progetti di cui vorrei fare il porting in net questi progetti usano

stl e c++ puro quindi nessuna altra libreria solo non riesco a farglielo compilare

come primo step ho messo solo una classe

Brainkiller Profilo | Guru

>il problema e che ho dei progetti di cui vorrei fare il porting
>in net questi progetti usano
>stl e c++ puro quindi nessuna altra libreria solo non riesco
>a farglielo compilare
>come primo step ho messo solo una classe

Ciao,
la vedo un po' dura ma ce la puoi fare Il supporto ai templates c'è con il Framework 2.0. Non si chiamano Template <T> ma si chiamano Generics. Ti indico un link da cui puoi prendere spunto per verificare com'è stata fatta l'implementazione dei Template in .NET:
http://msdn2.microsoft.com/en-us/library/0x6a29h6.aspx

Naturalmente se stia usando Framwork 1.1, nel tuo caso sarebbe meglio passare al 2.0.

Ciao
David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

yag2 Profilo | Newbie

>>il problema e che ho dei progetti di cui vorrei fare il porting
>>in net questi progetti usano
>>stl e c++ puro quindi nessuna altra libreria solo non riesco
>>a farglielo compilare
>>come primo step ho messo solo una classe
>
>Ciao,
>la vedo un po' dura ma ce la puoi fare Il supporto ai templates
>c'è con il Framework 2.0. Non si chiamano Template <T>
>ma si chiamano Generics. Ti indico un link da cui puoi prendere
>spunto per verificare com'è stata fatta l'implementazione dei
>Template in .NET:
>http://msdn2.microsoft.com/en-us/library/0x6a29h6.aspx
>
>Naturalmente se stia usando Framwork 1.1, nel tuo caso sarebbe
>meglio passare al 2.0.
>
quindi non posso usare il codice vecchio ? cioè per capirci io del nuovo framewrok per adesso voglio usare
solo la parte visiva form eventi etc. anche connessioni varie ma il resto non toccarlo diciamo
e' possibile ?

Brainkiller Profilo | Guru

>quindi non posso usare il codice vecchio ? cioè per capirci io
>del nuovo framewrok per adesso voglio usare
>solo la parte visiva form eventi etc. anche connessioni varie
>ma il resto non toccarlo diciamo
>e' possibile ?

Il tuo programma immagino usi linguaggio C/C++. Se sì, l'unica cosa che puoi fare è importare tutto il software dentro Visual C++ .NET. Lì dovrebbe quanto meno compilare tutto.

A questo punto puoi usare le estensioni .NET e usare nel tuo programma sia codice C/C++ sia codice .NET.

Uno dei principali svantaggi di questa soluzione è che comunque quando distribusici il compilato sulla macchina di destinazione dovrà comunque essere installato il .NET Framework.

Un altro svantaggio è che quando farai uso di codice .NET il Runtime dovrà essere istanziato quindi ulteriore memoria verrà allocata anche per far girare il codice .NET.

Ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

yag2 Profilo | Newbie

>>quindi non posso usare il codice vecchio ? cioè per capirci io
>>del nuovo framewrok per adesso voglio usare
>>solo la parte visiva form eventi etc. anche connessioni varie
>>ma il resto non toccarlo diciamo
>>e' possibile ?
>
>Il tuo programma immagino usi linguaggio C/C++. Se sì, l'unica
>cosa che puoi fare è importare tutto il software dentro Visual
>C++ .NET. Lì dovrebbe quanto meno compilare tutto.
>
>A questo punto puoi usare le estensioni .NET e usare nel tuo
>programma sia codice C/C++ sia codice .NET.
>
>Uno dei principali svantaggi di questa soluzione è che comunque
>quando distribusici il compilato sulla macchina di destinazione
>dovrà comunque essere installato il .NET Framework.
>
>Un altro svantaggio è che quando farai uso di codice .NET il
>Runtime dovrà essere istanziato quindi ulteriore memoria verrà
>allocata anche per far girare il codice .NET.
>
non mi compila proprio domani posto i messaggi di errore ciao

yag2 Profilo | Newbie

ecco gli errori ed anche il file

/*
ver: 1.0
*/

#ifndef _UCONTAINERH_
#define _UCONTAINERH_

#include <stdlib.h>
#include <iostream>
#include <fstream>
#include <list>



using namespace std ;



template <typename tipoGenerico>
class clsContainer
{
public:
clsContainer(); //costruttore
~clsContainer(); //distruttore

private:
list<tipoGenerico> gen; //per l'inserimento e cancellazione
list<tipoGenerico>::iterator it;


public:
void insertItem(tipoGenerico sItem);
void cancelItem(tipoGenerico sItem);
bool findItem(tipoGenerico sItem);
bool cancelBuffer();
void cancelDatoCorr();
tipoGenerico getValueToIndex(int);
int getNumElem();


//funzioni di spostamento nel contenitore
void goStart();
void goEnd();
void nextElem();
void prevElem();
bool locateEnd;

tipoGenerico getValueToIndex();

};

------ Build started: Project: cataSoft, Configuration: Debug Win32 ------
Compiling...
cl : Command line warning D9025 : overriding '/clr:pure' with '/clr'
cataSoft.cpp
d:\documenti\visual studio 2005\projects\catasoft\catasoft\UnitContainer.h(28) : warning C4346: 'std::list<tipoGenerico>::iterator' : dependent name is not a type
prefix with 'typename' to indicate a type
d:\documenti\visual studio 2005\projects\catasoft\catasoft\UnitContainer.h(50) : see reference to class template instantiation 'clsContainer<tipoGenerico>' being compiled
d:\documenti\visual studio 2005\projects\catasoft\catasoft\UnitContainer.h(28) : error C2146: syntax error : missing ';' before identifier 'it'
d:\documenti\visual studio 2005\projects\catasoft\catasoft\UnitContainer.h(28) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
Build log was saved at "file://d:\documenti\Visual Studio 2005\Projects\cataSoft\cataSoft\Debug\BuildLog.htm"
cataSoft - 2 error(s), 2 warning(s)

Brainkiller Profilo | Guru

>ecco gli errori ed anche il file
>

Allora spiega un po', il progetto all'inizio con che ambiente è stato costruito ?

COn l'ambiente con cui è stato costruito, funzionava ? Veniva compilato ?

Hai fatto delle modifiche già all'interno di VS.NET 2005 ?

Ciao
David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

yag2 Profilo | Newbie

Ciao compilava con visual studio 6 mi pare la versione prima di .net
e borland 6

si si funzionava tutto (non sto a vedere ii bug) ma compilava ed eseguiva tutto

...

Brainkiller Profilo | Guru

>Ciao compilava con visual studio 6 mi pare la versione prima
>di .net
>e borland 6

Ciao,
se compilava con la prima versione di .NET, dovrebbe compilare anche con la 2003 e la 2005, sempre che il progetto non sia stato modificato nel frattempo.


David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

yag2 Profilo | Newbie

>>Ciao compilava con visual studio 6 mi pare la versione prima
>>di .net
>>e borland 6
>
>Ciao,
>se compilava con la prima versione di .NET, dovrebbe compilare
>anche con la 2003 e la 2005, sempre che il progetto non sia stato
>modificato nel frattempo.
>
nessuno modifica e forse o mi sono spiegato o hai capito male.
Non lo ho mai usato con .net solo le versioni prima

Brainkiller Profilo | Guru

>nessuno modifica e forse o mi sono spiegato o hai capito male.
>Non lo ho mai usato con .net solo le versioni prima

Ok, se questo è un progetto che viene dal Visual C++, e hai dei file .dsw o .dsp di progetto, aprendolo con Visual C++ 2005 dovresti eventualmente avere qualche warning che ti suggerisce di aggironare il progetto e poi dovrebbe compilare.

Ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

yag2 Profilo | Newbie

ma il problema non è questo "progetto" inteso come tale
Perchè in questo caso come progetto intendo una sorta di toolkit mio personale

mini librerie che uso nel progetto vero e proprio
Comunque partendo da una parte minimale di questo progetto ed aggiunta quella classe che ti ho fatto vedere
non compila e da questi errori

la versione di .net è la free quella express per c++

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