Une DLL, c'est du binaire. Il n'y a pas de lignes.
Input#n, chaine$ récupère en entrée une chaîne de caractères terminée par un espace, un caractère d'espacement, ou une séquence CRLF (code fin de ligne).
Quand on veut récupérer une ligne entière, on utilise LineInput.
Si dans un fichier on a "machin chose bidule" dans une ligne, input#n, toto$ récupèrera machin
le prochain input#n, toto$ récupèrera chose
le suivant input#n, toto$ récupèrera bidule
tandis que LineInput récupèrera le tout d'un bloc.
Pour un fichier binaire, faut ouvrir en binaire.
Je sais plus si c'est un open "machin.bid" for binary as #1 (ou random, je mélange un peu)
On fait alors un get et put caractère par caractère de l'un vers l'autre.
Si on veut faire une simple copie de fichier , on peut faire un shellexecute("copy xx.dll toto.txt" ) ou analogue sous VisualBasic (à voir dans la doc).