Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565

    VC++2008 non compatibile su Win98?

    Ho fatto un piccolo software in VisualC++2008 e nonostante mi sia assicurato che tutte le funzioni usate (WIN32 API) siano eisstenti e compatibili con Windows 98, quando provo ad avviarlo su tale PC ricevo un errore del tipo

    Il programma <XYZ> richiede una versione più nuova di Windows
    Cosa dovrei fare?
    Ho messo vari Redistributables, ma il risultato non è cambiato.
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462

    Re: VC++2008 non compatibile su Win98?

    Originariamente inviato da XWolverineX
    Ho fatto un piccolo software in VisualC++2008 e nonostante mi sia assicurato che tutte le funzioni usate (WIN32 API) siano eisstenti e compatibili con Windows 98, quando provo ad avviarlo su tale PC ricevo un errore del tipo



    Cosa dovrei fare?
    Ho messo vari Redistributables, ma il risultato non è cambiato.
    Suppongo tu non possa far altro che usare un compilatore piu' vecchio ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Se non ricordo male, il punto è che è la stessa CRT ad usare un paio di funzioni che su Windows 98 non sono disponibili.
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565
    Ho risolto usando Visual C++ 98 ma non mi tornano i conti.

    Difatti se io compilo usand funzioni compatibili e seleziono multithreaded DLL (quindi la CRT non è integrata) e poi installo i runtime del 98, non capisco perchè non debba funzionare...

    Comunque non usavo la CRT, solo uindovs punto acca
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  5. #5
    Originariamente inviato da XWolverineX
    Difatti se io compilo usand funzioni compatibili e seleziono multithreaded DLL (quindi la CRT non è integrata) e poi installo i runtime del 98, non capisco perchè non debba funzionare...
    Anche se è in versione dll la CRT di VC++ 6 non è la stessa di VC++ 2008.
    Comunque non usavo la CRT, solo uindovs punto acca
    È comunque linkata al tuo eseguibile e il suo entrypoint è quello che di fatto viene chiamato all'inizio del programma (il tuo WinMain è finto, viene richiamato dalla CRT, non dal sistema). Se proprio lo desideri puoi non linkare la CRT al tuo eseguibile, ma probabilmente buona parte dei meccanismi avanzati del C++ non funzioneranno.
    Comunque avevo visto da qualche parte un articolo per patchare la CRT di VS2008 in modo che andasse su Windows 98, se lo ritrovo lo posto.
    Qui invece c'è un articolo solo vagamente attinente ma che ti dà l'idea di quello che fa la CRT oltre a fornire le funzioni che usiamo nei programmi.
    Amaro C++, il gusto pieno dell'undefined behavior.

  6. #6
    Ah, ho visto adesso che VS2008 produce eseguibili che hanno in qualche header PE l'apposito flag che dice al loader che l'immagine in questione è solo per Windows NT>=5; nulla ti impedisce di modificare questo header in modo che il loader carichi il tuo eseguibile, ma nessuno ti garantisce che poi funzioni correttamente.

    Per inciso, io eviterei VC++ 6, è decisamente poco aderente allo standard; puoi ancora usare VC++ 2005 Express, o Code::Blocks abbinato al compilatore a riga di comando di VC++ 2003 o a MinGW.
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.