Che cosa rende un programma (in) compatibile su piattaforme a 32/64 bit? [chiuso]

0

Diciamo che sto sviluppando un programma per Windows. Quali sono alcune cose che posso / non posso fare se voglio che sia utilizzabile per piattaforme a 32/64 bit?

    
posta Supreme Grand Ruler 07.06.2016 - 02:13
fonte

2 risposte

3

I miei pensieri su questo

  • Le applicazioni a 32 bit possono essere eseguite su finestre a 64 bit, ma non viceversa.
  • Le applicazioni a 32 bit eseguite su finestre a 64 bit visualizzano di default una vista "virtuale" del filesystem e del registro. Questo può diventare piuttosto confuso a volte.
  • Se l'applicazione utilizza un driver personalizzato, allora quel driver dovrà avere versioni del driver a 32 e 64 bit. Windows a 64 bit è molto più restrittivo della firma dei driver rispetto a 32 bit.
  • Sono a conoscenza di almeno un set di API * danneggiato per applicazioni a 32 bit su finestre a 64 bit. Se ti imbatti in un'API di questo tipo potresti dover creare versioni separate a 32 e 64 bit della tua applicazione.
  • In generale, prova in anticipo e spesso su tutte le piattaforme supportate. È più facile lavorare intorno a una stranezza che si scopre (sia in relazione alla versione o al numero di bit) quando si sviluppa per la prima volta una funzionalità piuttosto che doverla affrontare in seguito.

* Quello di cui sono a conoscenza è l'API COM "advanced firewall" utilizzata per riconfigurare il firewall su Windows 7, ma prevedo che se c'è una tale API rotta ce ne sono altre.

    
risposta data 07.06.2016 - 03:18
fonte
0

What are some things I can / can't do if I want it to be usable for 32 / 64 bit platforms?

Tutto ciò che @Peter Green ha detto è giusto. La maggior parte del tempo, i programmi saranno in grado di funzionare su entrambi i 32 bit / 64 bit. Ecco alcune altre insidie:

  • l'utilizzo di una libreria che esegue solo su entrambi è il vincolo più comune
  • fare qualcosa di funky con l'aritmetica dei puntatori può facilmente ritorcersi contro a causa di un assunto errato nelle dimensioni di un puntatore (per gli utenti di c ++)
  • i programmi che utilizzano più di 4 GB di memoria richiedono 64 bit
  • eseguendo alcuni programmi OS / driver di livello molto basso
risposta data 07.06.2016 - 10:33
fonte

Leggi altre domande sui tag