Newsgroup: it.comp.programmare.win32
Titolo: Visual C++ per Windows CE

Buongiorno a tutto il NG!
Vi spiego la mia problematica. Devo convertire un progetto VC++ per ambienti
Windows standard in ambienti Windows CE, e non so se l'applicazione creata
con Visual Studio 6 è compatibile anche in ambienti Windows CE. Se qualcuno
mi può dare maggiori informazioni a riguardo, o se è a conoscenza di addon
per la compatibilità tra gli ambienti.
Grazie anticipatamente.
Simone

 ha scritto nel messaggio
news:ashvaq$vt$1...@monty.lombardiacom.it...

Sia nel caso tu abbia usato il C che il C++ con le MFC (pero' non conosco
questo framework, io uso il C) non dovresti incontrare problemi
insormontabili. Certo non basta una ricompilazione, come minimo devi rifarti
da zero la GUI, se non hai usato la macro TEXT() o analoghe per il supporto
Unicode devi convertire tutta la gestione delle stringhe di testo e poi
dovrai cambiare qualcosina qua e la nel caso di funzionalita' non supportate
da WinCE. In compenso l'ambiente di sviluppo e' gratis (ringraziamo per
questo la grandissima diffusione dei Palm e speriamo che duri :) ),
scaricati il SDK per PocketPC 2002 e il compilatore (Embeded Development
Tools 3.0). Lascia perdere il 4.0 che produce solo roba per WinCE.NET
(quindi inutilizzabile, se non su un unico modello di PDA, per quanto ne
sappia io).
Luca

 wrote in
news:ashvaq$vt$
1...@monty.lombardiacom.it
: 

Visual C++ per Windows CE si chiama "Embedded Visual C++" ed è 
disponibile gratuitamente sul sito microsoft sia nella versione per 
CE 4.0 che (come "Embedded Visual Tools") per la versione 3.0.
Inoltre puoi scaricare diversi SDK per le varie versioni "custom" di 
windows CE (PocketPC 2000 e 2002, SmartPhone, Automotive etc.) con i 
relativi emulatori (utili per lo sviluppo iniziale, anche se non sono 
affidabili al 100% ed è utile verificare sul device reale i risultati 
del tuo lavoro).
Se devi sviluppare un'applicazione per uno specifico device puoi 
chiedere a chi ha realizzato il device di fornirti il relativo SDK (è 
abbastanza semplice generarlo da Platform Builder, soprattutto nella 
versione 4, con tanto di emulatore).
Sicuramente l'applicazione non è "compatibile" a livello binario. 
Difficilmente lo è a livello di sorgente (se non per applicazioni 
banali o molto "fortunate").
La portabilità dipende dalle librerie e dalla tipologia di API che 
hai utilizzato.
Se hai utilizzato librerie di terze parti di cui non hai a 
disposizione i sorgenti o versioni per EVC il porting può diventare 
molto complicato (come minimo di dovrai riscrivere le librerie o la 
parte di applicazione che le utilizza).
Se hai usato le API standard, devi considerare che non tutte le API 
sono disponibili o funzionano allo stesso modo su CE e molto dipende 
dalla tipologia di applicazione che devi portare. 
Se hai usato MFC o ATL è possibile che il passaggio alla relativa 
versione per windows CE comporti comunque qualche aggiustamento.
Se il programma deve girare su device con touch screen, schermi di 
dimensioni ridotte o con tastiere non-standard è probabile che tu 
debba riorganizzare la GUI per renderla "compatibile" con le ridotte 
capacità grafiche e di input del sistema.
Altri "aggiustamenti" dell'applicazione potrebbero essere necessari 
per adattarla meglio al device e renderla più funzionale sfruttando 
delle caratteristiche specifiche di Windows CE non presenti in 
ambiente desktop (le notifiche, activesync, il pannello di input 
etc...).
Inoltre Windows CE è soltanto unicode e questo può comportare 
problemi nel porting di applicazioni scritte per Win32 in ASCII.
Oltre a dover utilizzare la macro TEXT per le stringhe costanti e 
TCHAR in luogo di char, devi considerare tutti i punti del programma 
in cui hai utilizzato le funzioni ASCII della libreria C standard 
(strcpy, strlen) e sostituirle con le varianti portabili (_tcscpy,
_tcslen etc.) e verificare attentamente se in qualche punto del 
programma hai considerato 1 carattere=1 byte (ad esempio 
nell'allocazione di memoria per le stringhe).
Alcune modifiche potrebbero poi rendersi necessarie per rendere il 
programma più performante su devices con ridotte capacità di 
elaborazione o memorizzazione. Ad esempio un loop che impegna il 
processore al 100%, anche in un thread a bassa priorità, è da evitare 
assolutamente su device palmari o smartphone poichè porta a un 
consumo elevato delle batterie.
Ti posso consigliare di scaricare EVC dal sito microsoft (versione 
4.0 se devi sviluppare per devices che utilizzano CE.net o versione 3 
.0 per devices basati su CE 3.0 o una delle sue varianti come 
PocketPC 2002, SmartPhone 2002 etc.) e procurarti (dal sito 
microsoft, sempre gratuito, al limite con registrazione su MSDN, o 
dal produttore dell'hardware) l'SDK relativo al device che dovrai 
utilizzare.
-- 
Valter Minute
vmi...@inwind.it
 (the reply address of this message is invalid)

 
vmi...@inwind.it
 (the reply address of this message is invalid)
Ecco, avevo fatto un po' di confusione con i nomi, intendevo EVC 3.0.
Luca


Grazie per le informazioni, ringrazio tutti voi.
Vi farò sapere se sono sufficienti le vostre indicazioni o se dovrò
chiedervi altre informazioni :-)
Simone