Ma hai compilato usando Unicode?
Dai un'occhiata alle proprieta' del progetto (generale, set dei caratteri)
Ma hai compilato usando Unicode?
Dai un'occhiata alle proprieta' del progetto (generale, set dei caratteri)
No MP tecnici (non rispondo nemmeno!), usa il forum.
C'è impostato "Utilizza set di caratteri multibyte"... mi devo preoccupare? Scherzo![]()
Se usassi "Non impostato" cosa cambierebbe all'applicazione?
Non ricordo di averlo io impostato in "Utilizza set di caratteri multibyte". Evidentemente è un'opzione di default....
Ho risolto, girando in rete ho trovato. La libreria da aggiungere è ADVAPI32.LIB
Non ho più alcun unresolved e l'applicazione pare funzioni correttamente...
Oregon, fammi capire bene le implicazioni dell'utilizzo di "Utilizza set di caratteri multibyte" io l'ho settato a "Non impostato".
La mia applicazione non girerà il mondo per cui non penso di aver di bisogno di un set di caratteri esteso....
È comunque meglio compilare per Unicode se non è necessario che l'applicazione sia compatibile con Windows 9x: gestire i percorsi con caratteri stranieri in ANSI, ad esempio, può essere un incubo; inoltre potresti guadagnare qualcosina in velocità per tutte le API che accettano parametri di testo: le versioni ANSI di queste API convertono i parametri ogni volta e li passano alle loro versioni Unicode. In ogni caso quell'impostazione ha effetto solo sulle API di Windows e sulle tue stringhe solo se stai già usando i generic text mapping (TCHAR.h), se stai usando i normali char non è così semplice passare a Unicode.
Tra parentesi, impostando "Usa librerie predefinite" ti saresti risparmiato buona parte di questo casino (a meno ovviamente che la tua applicazione non abbia esigenze particolari).
Amaro C++, il gusto pieno dell'undefined behavior.
Grazie MItaly per la disamina, in efffeti uso le variabili char a iosa... Caratteri stranieri non ne uso.E' comunque meglio compilare per Unicode se non è necessario che l'applicazione sia compatibile con Windows 9x: gestire i percorsi con caratteri stranieri in ANSI, ad esempio, può essere un incubo; inoltre potresti guadagnare qualcosina in velocità per tutte le API che accettano parametri di testo: le versioni ANSI di queste API convertono i parametri ogni volta e li passano alle loro versioni Unicode. In ogni caso quell'impostazione ha effetto solo sulle API di Windows e sulle tue stringhe solo se stai già usando i generic text mapping (TCHAR.h), se stai usando i normali char non è così semplice passare a Unicode.
Quindi se ho ben capito usando Unicode perdo la compatibilità con Windows 9x ma ne guadagno in velocità di esecuzione perchè tante conversioni non vengono eseguite...
Devo valutare, ma forse preferisco consevare l'estrema compatibilità con SO più bassi.
Il mercato prima di tutto...![]()
Cmq farò una prova a ricompilare tutto in Unicode per vedere l'effetto che fa...
Usando l'opzione librerie predefinite avevo problemi di compatibilità. L'applicazione usa librerie grafiche e di protezione quindi sono stato quasi obbligato ad usare l'opzione che impone la specifica delle librerie.
![]()
Proprio per questo esiste la possibilità di usare i TCHAR, che, a seconda dell'impostazione citata diventano char o wchar_t (e così pure tutte le funzioni di TCHAR.h e le API di Windows). Dai un'occhiata qui.Originariamente inviato da IlViandante2960
Grazie MItaly per la disamina, in efffeti uso le variabili char a iosa... Caratteri stranieri non ne uso.
Quindi se ho ben capito usando Unicode perdo la compatibilità con Windows 9x ma ne guadagno in velocità di esecuzione perchè tante conversioni non vengono eseguite...
Devo valutare, ma forse preferisco consevare l'estrema compatibilità con SO più bassi.
Il mercato prima di tutto...![]()
Amaro C++, il gusto pieno dell'undefined behavior.