Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: bonmario - Giugno 08, 2019, 01:33:57 pm

Titolo: Far vedere DLL a programmi 64 bit
Inserito da: bonmario - Giugno 08, 2019, 01:33:57 pm
Ciao a tutti,
da qualche mese sono passato, su Windows 10, da Lazarus 32 bit a quello a 64 bit.

Con i programmi compilati con Lazarus a 32 bit, se in un mio programma dovevo usare qualche dll, indipendentemente dal fatto che il sistema operativo fosse 32 o 64 bit, avevo 2 scelte:
- mettere le dll nella directory dell'eseguibile
- mettere le dll in "C:\WINDOWS\system32"

Io di solito usavo la seconda, in modo che , fatto una volta, ero sempre a posto.

Ora che sono passato a creare programmi 64 bit, non capisco come fare.
Ho provato a salvare le dll sia in "C:\WINDOWS\system32", che in "C:\Windows\SysWOW64", ma il mio programma non le vede. Se invece le metto nella stessa directory dove c'è il mio programma, tutto funziona correttamente.

Grazie in anticipo, Mario
Titolo: Re:Far vedere DLL a programmi 64 bit
Inserito da: SB - Giugno 09, 2019, 08:42:46 am
Con le dovute cautele perchè non lavoro su Windows... mi sembra di ricordare che hanno introdotto un sistema di permessi e non basta più copiare la dll nella cartella di sistema
Se non erro, le dll a 64 bit si mettono in system32 e poi si invoca regsvr32 che si trova nella stessa cartella, lanciandolo con permessi di amministrazione e passandogli il nome della dll

Titolo: Re:Far vedere DLL a programmi 64 bit
Inserito da: bonmario - Giugno 09, 2019, 08:56:49 am
Grazie, mi hai dato una dritta che mi ha aiutato ...
Avevo le 2 dll che mi servono, in un file zip.
Quando le estraevo in C:\Windows\System32, mi chiedeva di farlo con i permessi di amministratore, io acconsentivo, non mi dava nessun errore.
Andando a verificare, mi sono accorto però che le 2 dll in C:\Windows\System32 non c'erano ...

Mi son allora affidato al buon vecchio prompt di DOS, aperto con i diritti di amministratore. Ho estratto le 2 dll in una directory temporanea, le ho spostate in C:\Windows\System32, lanciato per ognuna regsvr32 ed ora tutto funziona.

Grazie, Mario