Newsgroup: it.comp.lang.visual-basic
Titolo: Scrivere DLL in assembler.

Salve a tutti, vorrei scrivere una semplice DLL per vb4 32
interamente in linguaggio assembler.
Se qualcuno lo ha già fatto e vuole inviarmi il codice sorgente
oppure spiegarmi come si fà, è il benvenuto.

...

Lo scopo è masochistico (scusa, ma ti fai solo del male). Non è possibile,
via Internet, spiegare come si fa una DLL in asm, e tantomeno in C.
A malapena in VB...........
Ciao, Fabio

 oppure spiegarmi come si fà, è il benvenuto.
si può fare abbastanza facilmente in un modo molto semplice se hai un
compilatore C con possibilità di assembler in linea (per esempio come quello
della Cygnus):
1) crei la tua bella DLL in C (l'argomento è stato trattato più volte nel
newsgroup, mi limito a ricordarti di inserire, nella dichiarazione della tua
funzione da esportare, la keyword __stdcall che imposta il passaggio dei
parametri secondo lo "standard call convention"; necessario per la
compatibilità C-VB).
2) dopo aver controllato che la tua funzione lavora bene, individua nel
codice (a occhio o con un profiler) le parti di codice che hanno bisogno di
essere velocizzate... e riscrivile in ASM con il tuo assembler in linea; in
questo modo dovresti ottenere un programma molto veloce ed anche non troppo
difficile da gestire.
Se vuoi scrivere direttamente tutto in ASM, non saprei come aiutarti, però
se fossi in te mi cercherei da qualche parte documentazione sulle solite
"standard call conventions" per il passaggio dei parametri e l'utilizzo dell
stack, quindi cercherei tra le opzioni del linker quella per creare una DLL.
Ciao, Alessio.


Invece di lambiccarti il cervello per imparare l'assembler, ti consiglio un
prodotto :
PB DLL COMPILER
scrivi in basic ma compili una dll NATIVA !!!!!!!!
Il prezzo non e' esorbitante, ma i risultati si !
visita a tal proposito il sito :
www.powerbasic.com
Ciao.

Vorrei fare volentieri a meno di scrivere DLL in assembler; purtroppo, per
generare delle precisissime temporizzazioni sui vari bit della porta
parallela,
mi sembra d'obbligo ricorrere al linguaggio assembler e sfruttare
i timer hardware (correggetemi se sbaglio).
Ho già realizzato tale DLL a 16 bit, ma sono all'oscuro di come possano
essere
le varie dichiarazioni per convertirla a 32 bit.
Grazie a tutti - MAX



Non sono molto esperto di questo campo, ma mi pare che per il tuo obiettivo
sia piu' adatto un VXD (Driver di Device Virtuale)... Questo almeno ti
consente di accedere all'hardware in modo diretto, cosa che non puoi fare
(almeno non semplicemente) con una DLL.
Just my .02c (di Euro :-)
--
Roal Zanazzi
z...@iol.it

	>Vorrei fare volentieri a meno di scrivere DLL in assembler;
purtroppo, per
	>generare delle precisissime temporizzazioni sui vari bit della
porta
	>parallela,
	Ho avuto un problema simile (scrivere sull'I/O in VB), risolto
proprio con una DLL scritta in C/Asm e compilata con VC5++. La trovi
alla mia HP (
http://www.aspide.it/freeweb/Altieri/freesource
 , e ancora
in fase di sviluppo, scusate per le imprecisioni). E' testata con W95,
temo pero che con NT abbia problemi.
	Puo comunque essere uno spunto.
	>mi sembra d'obbligo ricorrere al linguaggio assembler 
	Anche il C ...
	>e sfruttare i timer hardware (correggetemi se sbaglio).
	Qui penso che sia dura, l'unico timer libero dell'8253 viene
usato da Dos/Windows come timer per generare un interrupt a intervalli
regolari (i famosi 18.2 interrupt al secondo). Penso che sia piu
conveniente scrivere un driver che prende momentaneamente possesso di
questo timer e alla fine lo restituisce al s.o. (non so bene le
conseguenze, ne le modalita).
	Forse esiste qualche API che ti permette di ottenere
temporizzazioni precise in maniera 'pulita'. Sono interessato anch'io.
	>Ho gia realizzato tale DLL a 16 bit, ma sono all'oscuro di come
possano essere le varie dichiarazioni per convertirla a 32 bit.
	Trovi tutto nella DLL segnalata, nata proprio dalla conversione
di una precedente versione a 16 bit.
	Alla mia pagina trovi anche dei listati in C/Asm che sotto DOS
riprogrammavano l'8253.
	Buon lavoro.
	Ciao, Carlo
 
alt...@infostudi.it

Io ho provato a scrivere una dll in asm te la vorrei mandare, ma sono un
neofita del NG
e non so come muovermi.
Ti do dei  siti veramente eccezionali per chi vuole programmare Win in asm
http://203.148.211.201/iczelion/index.html
http://www.fortunecity.com/skyscraper/corel/378/
http://perso.infonie.fr/kinher/
http://www.nauticom.net/www/secret/
Spero di esserti stato di aiuto. Se è così per sdebitarti fammi capire come
funziona un NG
Grazie
Mario
