|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Apr 2006
Città: Cosenza
Messaggi: 541
|
[visual C++]compilabilità del codice con altri OS se..
Ho provato a cercare un forum relativo a visual c++ (anche in inglese) ma non ho utilizzato la stringa giusta, evidentemente.
La mia domanda è questa: Se programmo in visual c++ (in visual studio) ed il mio codice non utilizza nessuna chiamata alle librerie c++ (eccetto quella standard) disponibili con visual studio, dovrebbe essere possibile compilarlo anche in altri sistemi operativi (sia windows datati/futuri che non-windows). Se invece nel codice utilizzo chiamate alle librerie messe a disposizione con visual studio, rimango legato a windows oppure riesco a compilare il codice (senza modifiche) anche in altri SO? Ad "occhio" essendo le librerie messe a disposizione dalla MS non 'open' ritengo che siano legate ad una particolare versione di win (su cui gira quella data versione di visual studio), però potrei sbagliarmi. Tutto questo senza utilizzare librerie esterne tipo boost o ptlib. Grazie delle risposte!
__________________
.Blog .»»» Firma estesa «««(all info) .email: pier4reich@yahoo.it .msn: pier4reich@yahoo.it .Home Page |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Mar 2009
Messaggi: 753
|
Le API di windows sicuramente non ti permettono di ricompilare lo stesso codice sotto altri tipi di architetture. Ad esempio linux.
Non dovresti aver problemi invece sotto altre versioni di windows. A questo problema vi sono passato da poco anche io, per risolvere dovresti utilizzare librerie indipendenti dal SO. (ve ne sono alcune, in questo forum mi hanno consigliato le Qt, e mi ci trovo bene per ora. Se però nel tuo programma non le usi pesantemente dovrebbe esserti sufficiente utilizzare li direttive del pre-processore per includere gli header in modo dipendente dal s.o. in cui ti trovi, ad esempio: Codice:
#if WIN32 #include <winsock2.h> #else /* UNIX */ #include <netdb.h> #endif |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Apr 2006
Città: Cosenza
Messaggi: 541
|
Ti ringrazio ma io non sto parlando solo delle win32 API, io sto parlano delle librerie messe a disposizione con visual studio (tranne la standard). Effettivamente non so se queste librerie si basano, successivamente, sulle api di win.
Librerie come la MFC, ATL, etc... (queste per capirci http://msdn.microsoft.com/it-it/library/52cs05fz.aspx) tutte fornite con visual studio.
__________________
.Blog .»»» Firma estesa «««(all info) .email: pier4reich@yahoo.it .msn: pier4reich@yahoo.it .Home Page |
![]() |
![]() |
![]() |
#4 |
Member
Iscritto dal: Apr 2004
Messaggi: 56
|
Purtroppo (o per fortuna) MFC etc sono solo per windows (MFC per esempio e'un wrapper a oggetti delle API win32)...dovresti usare qualcosa di portabile tipo Qt
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Apr 2006
Città: Cosenza
Messaggi: 541
|
Ok, quindi rimarrei legato con el varie librerie di visual studio. Grazie mille!
__________________
.Blog .»»» Firma estesa «««(all info) .email: pier4reich@yahoo.it .msn: pier4reich@yahoo.it .Home Page |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Se per te questo è un problema prova QtCreator. E' un IDE che permette di creare interfacce con le librerie Qt. Si trova incluso nel Qt SDK.
Se non fai uso di API del sistema operativo, puoi creare codice al 100% portabile fra vari sistemi operativi. |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Apr 2006
Città: Cosenza
Messaggi: 541
|
Principalmente l'ho chiesto perchè, per esempio, emule è in C++ ma è legato a windows. Siccome usa praticamente tutte le librerie citate precedentemente mi chiedevo se fosse portabile (come aMule) allorquando avessi tolto le chiamate dirette alle api (che si fanno tramite la windows.h).
Invece come sospettavo ogni libreria di visual studio è legata a win (tranne la standard) quindi nulla. Si leggendo in giro ho visto che ci sono le qt, le boost o le ptlib. Thanks!
__________________
.Blog .»»» Firma estesa «««(all info) .email: pier4reich@yahoo.it .msn: pier4reich@yahoo.it .Home Page |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
aMule è praticamente il porting di eMule.
In ogni caso i problemi di portabilità se non troppo grandi si possono aggirare come ha scritto Teo@Unix sopra. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:29.