Newsgroup: it.comp.programmare.win32
Titolo: compatibilità tra VC++ 6.0 e VC++ 2010

ciao a tutti,
ho una vecchia applicazione fatta con VC++ 6.0 (MFC) che ho aperto con
il VC++ 2010, dopo vari messaggi di conversione l'applicazione
funziona bene.
Dopo ne ho creato una nuova con VC++2010 ed ho copiato tutto il codice
dalla vecchia, adesso ho questo messaggio di errore:
codice:
	HidD_GetHidGuid(&GUID);
	SecurityAttributes.nLength = sizeof(SECURITY_ATTRIBUTES);
	SecurityAttributes.lpSecurityDescriptor = NULL;
	SecurityAttributes.bInheritHandle = false;
debag:
1>UsbProva2Dlg.obj : error LNK2019: riferimento al simbolo esterno
_HidD_GetHidGuid@4 non risolto nella funzione "public: void __thiscall
CUsbProva2Dlg::InitHIDDev(void)" (?InitHIDDev@CUsbProva2Dlg@@QAEXXZ)
1>C:\MyProgram\Prog VC++ 2010\UsbProva2\Debug\UsbProva2.exe : fatal
error LNK1120: 1 esterni non risolti
il codice è derivato dal file hidsdi.h
credo sia un problema di compatibilità dei file, c'è un modo per fare
convertire i file partendo da un nuovo progetto?

error LNK1120: 1 esterni non risolti
E' un classico errore dovuto alla mancanza di un file di libreria.

 funziona bene.
Per lo specifico problema quoto xnoise.
Più in generale non puoi fare affidamento che la compilazione di un 
progetto vc6 abbia successo o anche che quando compili sia corretto.
Il tutto è dovuto alla tonnellata di differenze dello standard ISO C++ 
a cui VC++ ha progressivamente aderito dopo VC6 (che era antecedente 
allo standard 98, quindi realmente la preistoria).
Di conseguenza ritestare tutta l'applicazione è un 'must' anche se 
apparentemente fila tutto liscio (cosa che nella media è piuttosto 
insolita).
-- 
Raffaele Rialdi  
http://www.iamraf.net
Weblog: 
http://blogs.ugidotnet.org/raffaele
Microsoft MVP profile 
https://mvp.support.microsoft.com/profile/raffaele
UGIdotNET - 
http://www.ugidotnet.org/

 UGIdotNET -
http://www.ugidotnet.org/
Quindi non ho speranza che funzioni con VC++ 2010 ?
L'applicazione serve per comunicare con un microcontrollore tramite
l'USB, sapete dove posso trovare librerie simili (o altro) che
funzionano con il VC++ 2010 ?ù
Grazie.

 funzionano con il VC++ 2010 ?ù
Se è codice kernel mode, dovrà necessariamente essere codice "C" e non 
"C++" (riconoscibile dal fatto che un vero codice C++ non usa 
esplicitamente i puntatori se non in casi estremi)
Se il codice dialoga con specifici driver (di generici non ne conosco) 
fai prima a chiedere al produttore della periferica.
Se la periferica USB emula una seriale, va bene qualsiasi cosa parli 
con la RS232.
Se il produttore nel frattempo ha prodotto un "sensor driver" in user 
mode (che funziona a partire da Win7), non hai neppure più bisogno 
della libreria ma dalla tua app parli direttamente con le Sensor API.
-- 
Raffaele Rialdi  
http://www.iamraf.net
Weblog: 
http://blogs.ugidotnet.org/raffaele


 UGIdotNET -
http://www.ugidotnet.org/
OK,
il convertitore USB/RS232 lo sto già usando però vorrei una
comunicazione diretta USB,
dal produttore non ho nessun driver,
sto provando a ritestare tutto per vedere se tutto funziona
regolarmente.
C'è un modo per fare accettare al VC++ 2010 i file del 6.0 oppure devo
comunque creare l'applicazione in VC++ 6.0 e poi convertirla in VC++
2010 ?

 2010 ?
Il progetto lo puoi convertire, VC++2010 non dovrebbe avere problemi a 
caricare il progetto VC6. Quanto sto dicendo è che il "linguaggio C++" 
è cambiato da allora.
Quindi anche se compila perfettamente è indispensabile testare tutte le 
funzionalità e verificare che funzionino come dovuto.
In altre parole non puoi tirare su il progetto compilarlo e fidarti che 
sia tutto ok
-- 
Raffaele Rialdi  
http://www.iamraf.net
Weblog: 
http://blogs.ugidotnet.org/raffaele


 UGIdotNET -
http://www.ugidotnet.org/
però devo creare il progetto in VC 6.0 e dopo convertirlo in 2010,
giusto ?

 giusto ?
Non hai detto che avevi già il progetto VC6?
Se hai solo i sorgenti (.c, .cpp, .h, ...) puoi andare dritto su 
VC++2010 ma ovviamente (come avviene per tutti i compilatori) devi 
sapere quali sono le opzioni di compilazione corrette (es: 
unicode/ansi, librerie esterne, etc. etc.)
-- 
Raffaele Rialdi  
http://www.iamraf.net
Weblog: 
http://blogs.ugidotnet.org/raffaele


 UGIdotNET -
http://www.ugidotnet.org/
Si ho un vecchio progetto in VC6 però vorrei iniziare un nuovo con
VC2010 utilizzando il vecchio codice, comunque ora provo a cambiare le
opzioni del compilatore poi ti faccio sapere