+ Rispondi al Thread
Pagina 1 di 2 12 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: passare da 32 a 64 bit

  1. #1
    SebastianoFloridia non è in linea Scolaretto
    Post
    139

    passare da 32 a 64 bit

    Salve a tutti, alcuni clienti stanno cominciando a creare modelli grafici sempre più più grandi, alcuni si sono lasciati scappare la mano. al punto di fare esplodere tutto.
    La nostra struttura dati è al limite previsto dal 32 bit.
    E' arrivato il momento di convertire la nostra applicazioni a 64 bit.
    Prima di cimentarmi nel passaggio in avanti, sono curioso di sapere cosa mi devo aspettare.
    Quali sono gli eventuali problemi e compatibilità che mi troverò ad affrontare.

    Grazie in anticipo
    Saluti
    Sebastiano Floridia

  2. #2
    Ferrari_and ora è in linea Scolaretto
    Post
    134
    Ciao,
    per quanto riguarda il sorgente se sviluppato con ambienti abbastanza recenti molto poco in quanto solitamente passare da 32 a 64 bit basta modificare alcune opzioni del compilatore.
    Altra cosa invece sono eventuali oggetti / componenti del progetto / Dll o simili che devono essere reperite a 64 Bit pena in blocco dell'applicativo.
    Altra cosa è obbligare il passaggio a sistemi operativo a Bit chi ha già il programma (in caso di pc datati si deve consigliare la sostituzione).

  3. #3
    SebastianoFloridia non è in linea Scolaretto
    Post
    139
    Grazie!!!!

    Saluti
    Sebastiano Floridia

  4. #4
    L'avatar di _alka_
    _alka_ non è in linea Very Important Person
    Luogo
    Reggio Emilia
    Post
    1,157
    Quote Originariamente inviato da SebastianoFloridia Visualizza il messaggio
    La nostra struttura dati è al limite previsto dal 32 bit.
    Che cosa intendi? Forse potrebbe essere anche il caso di fattorizzarla.

    Quote Originariamente inviato da SebastianoFloridia Visualizza il messaggio
    E' arrivato il momento di convertire la nostra applicazioni a 64 bit.
    Prima di cimentarmi nel passaggio in avanti, sono curioso di sapere cosa mi devo aspettare.
    Come sempre vale in questi casi, la risposta è "dipende": se non hai alcun tipo di dipendenza esterna e usi solo assembly .NET che non hanno specifico riferimento a una CPU particolare, direi che è sufficiente ricompilare l'applicazione; in caso contrario, ad esempio in presenza di DLL pensate appositamente per una architettura, dovrai reperire - se disponibili - le versioni specifiche per la CPU di riferimento.

    Senza particolari indizi sul tuo progetto, direi che non si possa aggiungere molto di più.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Homepage | Blog | Delphi Podcast | Delphi Succinctly (e-book)

  5. #5
    SebastianoFloridia non è in linea Scolaretto
    Post
    139
    Ciao a tutti,
    la mia applicazione è un exe desktop con una interfaccia grafica.
    per visualizzare i modelli matematici utilizziamo un componente esterno opengl a pagamento che superato un certo numero di elementi grafici va in errore.
    Superato 7000-8000 elementi , esplode.
    si rende necessario, obbligatoriamente, passare al software in versione 64 bit.
    Tuttavia, oltre alla parte grafica, ci interfacciamo con un solutore numerico esterno che deve lavorare per forza a 32 bit.

    L'unico modo per uscirne è preparare una interfaccia intermedia (scritta a 32 bit) che prenda il file dati, creato dall'applicazione madre a 64 bit, lo preleva da disco e lancia il solutore a 32 bit.
    ci sto provando.

    Nel preparare l'interfaccia a 32 bit, nella soluzione con dentro il progetto a 64, ho creato un progetto libreria classi per fare una dll a 32 bit.
    Tutti i metodi sono esposti, in fase di sviluppo vedo il contenuto della dll.
    Durante il run debug, si evidenzia il seguente errore:

    System.BadImageFormatException
    HResult=0x8007000B
    Messaggio=Non è stato possibile caricare il file o l'assembly 'Microsap64To32, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' o una delle relative dipendenze. Tentativo di caricare un programma con un formato non corretto.

    Mi viene il dubbio che nella stessa soluzione non possono stare un exe a 64 ed una dll a 32 e quindi dovrei passare ad un interfaccia intermedia come exe esterno.

    Cosa ne pensate?
    Grazie per l'interessamento.

    Saluti
    Sebastiano

  6. #6
    L'avatar di _alka_
    _alka_ non è in linea Very Important Person
    Luogo
    Reggio Emilia
    Post
    1,157
    Quote Originariamente inviato da SebastianoFloridia Visualizza il messaggio
    Mi viene il dubbio che nella stessa soluzione non possono stare un exe a 64 ed una dll a 32 e quindi dovrei passare ad un interfaccia intermedia come exe esterno.
    Nella soluzione puoi mettere tutti progetti a 32bit o 64 bit che vuoi.
    Ciò che non puoi fare è lanciare un processo (eseguibile) a 32bit che carica DLL a 64bit, o viceversa.

    Ciascun processo viene assegnato a una architettura di riferimento e la stessa deve valere per qualsiasi modulo che viene caricato nello stesso spazio dell'applicazione.

    Se devi far comunicare due parti a 32bit o 64 bit, mi pare di capire che l'unica possibilità sia quella di avere due processi distinti per le due architetture, che comunichino fra loro usando qualche mezzo di scambio messaggi interprocessuale (es. socket).

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Homepage | Blog | Delphi Podcast | Delphi Succinctly (e-book)

  7. #7
    Ferrari_and ora è in linea Scolaretto
    Post
    134
    In una applicazione 64 bit le dll a cui fa riferimento devono essere a 64 bit come per applicazioni a 32 bit le dll devo essere a 32 bit.

  8. #8
    SebastianoFloridia non è in linea Scolaretto
    Post
    139
    Bene!!! lo immaginavo.
    Quindi per creare questa interfaccia di collegamenti faccio come facevo in vb6.
    un bel exe a cui passo il path dove prelevare il file dati.

    Grazie!!!
    Sebastiano

  9. #9
    SebastianoFloridia non è in linea Scolaretto
    Post
    139
    Salve a tutti, mi viene un altro dubbio.
    Volendo fare l'exe a 32 bit a cui passo le info necessario nel parametro command agganciato al lancio dell'exe, c'è modo di fare debug del codice dell'exe?

    Cosa ne pensate?

    Grazie Sebastiano

  10. #10
    Ferrari_and ora è in linea Scolaretto
    Post
    134
    Alcuni ambienti di sviluppo consentono di inserire in apposito spazio una stringa di testo che viene poi utilizzata per simulare l'esecuzione con command.
    Direttamente da EXE non credo esista nulla.

+ Rispondi al Thread
Pagina 1 di 2 12 ultimoultimo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi