Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione Samsung Galaxy S26 Ultra: finalmente qualcosa di nuovo
Recensione Samsung Galaxy S26 Ultra: finalmente qualcosa di nuovo
Per diversi giorni il Galaxy S26 Ultra di Samsung è stato il nostro compagno di vita. Oltre alle conferme del colosso coreano come la qualità del display e una suite AI senza rivali, arriva il Privacy Display, un unicum nel mondo smartphone. Ci sono ancora alcuni gap che non sono riusciti a colmare lato batteria e fotocamera, seppur con alcuni miglioramenti.
Diablo II Resurrected: il nuovo DLC Reign of the Warlock
Diablo II Resurrected: il nuovo DLC Reign of the Warlock
Abbiamo provato per voi il nuovo DLC lanciato a sorpresa da Blizzard per Diablo II: Resurrected e quella che segue è una disamina dei nuovi contenuti che abbiamo avuto modo di sperimentare nel corso delle nostre sessioni di gioco, con particolare riguardo per la nuova classe dello Stregone
Deep Tech Revolution: così Area Science Park apre i laboratori alle startup
Deep Tech Revolution: così Area Science Park apre i laboratori alle startup
Siamo tornati nel parco tecnologico di Trieste per il kick-off del programma che mette a disposizione di cinque startup le infrastrutture di ricerca, dal sincrotrone Elettra ai laboratori di genomica e HPC. Roberto Pillon racconta il modello e la visione
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 27-11-2009, 01:03   #1
hereistay
Member
 
Iscritto dal: Nov 2009
Messaggi: 287
[VB6] Come modificare il programma in VB(x so 32 bit)per farlo girare su s.o. 16 bit

[VB] Come modificare il programma per utilizzarlo su win 98?

--------------------------------------------------------------------------------
Ciao!
Vi riporto il programma che dovrei utilizzare per gestire un dispositivo esterno via parallela.
Questo è il modulo per la gestione parallela esclusivamente per un s.o. a 32 bit:

'----------------------------RICHIAMO ALLA LIBRERIA PER LA GESTIONE DELLA PORTA LPT----------------------------
Public Declare Function Inp Lib "inpout32.dll" Alias "Inp32" (ByVal PortAddress As Integer) As Integer
Public Declare Sub Out Lib "inpout32.dll" Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer)

'--------------------------COSTANTI PER GLI INDIRIZZI DELLA PORTA LPT1--------------------------------
Public Const IndirizzoData As String = "&H378" 'REGISTRO DATA: sola scrittura (8 bit)
'Public Const IndirizzoStatus As String = "&H379" 'REGISTRO STATUS: sola lettura (ultimi 5 bit)
'Public Const IndirizzoControl As String = "&H37a" 'REGISTRO CONTROL: lettura + scrittura (primi 4 bit)

Public StatoCubo(1 To 8, 1 To 64) As Integer 'variabile che contiene lo stato attuale di TUTTO il cubo

Public Function ScriviCubo(NumeroCicli As Integer) 'scrive sul cubo lo stato memorizzato nella matrice StatoCubo
Dim ByteLpt As Byte
Dim ContaLivelli As Integer
Dim ContaLed As Integer
Dim ContaCicli As Integer

For ContaCicli = 1 To NumeroCicli

For ContaLivelli = 1 To 8

'imposto tutti i bit dello shift register senza clokkare sullo shift reg. dei livelli e disattivando SEMPRE il clear dello shift register (valore=2) (xx 01x _1_)
For ContaLed = 64 To 1 Step -1 'For ContaLed = 1 To 64
'SHIFT REG. LIVELLI:
'MSB = 0 --> clock disattivato
'CENTRALE = 1 (valore=16)--> clear disattivato
'LSB = indifferente

'SHIFT REG. LED:
'MSB = 0 --> clock disattivato
'CENTRALE = 1 (valore=2)--> clear disattivato
'LSB = StatoCubo(ContaLivelli, ContaLed)
ByteLpt = (0 + 16 + 0) + (0 + 2 + StatoCubo(ContaLivelli, ContaLed))
Call ClokkaLed(ByteLpt) 'passo il valore alla funzione che dà un colpo di clock allo shift dei led
Next ContaLed

'SHIFT REG. LIVELLI:
'MSB = 0 --> clock disattivato
'CENTRALE = 1 (valore=16)--> clear disattivato
'LSB = (se livello = 1--> 1(valore=8); se livello <> 1--> 0) --> metto 1 solo la prima volta

'SHIFT REG. LED:
'MSB = 0 --> clock disattivato
'CENTRALE = 1 (valore=2)--> clear disattivato
'LSB = indifferente

If ContaLivelli = 1 Then
ByteLpt = (0 + 16 + 8) + (0 + 2 + 0)
Else
ByteLpt = (0 + 16 + 0) + (0 + 2 + 0)
End If
Call ClokkaLivello(ByteLpt) 'passo il valore alla funzione che dà un colpo di clock allo shift dei livelli

Call Aspetta(60000) 'smette di lampeggiare dai 60000 ai 70000

Next ContaLivelli

Call ClearAll 'richiamo la funzione per attivare il clear su entrambi gli shift register

Next ContaCicli

End Function

Public Function ClokkaLed(Valore As Byte) 'dà un colpo di clock modificando SOLAMENTE il bit del clock
Out Val(IndirizzoData), Val(Valore) 'clock DISATTIVATO
'aggiungo 4 perchè devo mettere ad 1 il bit del clock dello shift led x dare il colpo di clock
Out Val(IndirizzoData), Val(Valore + 4) 'clock ATTIVATO
End Function

Public Function ClokkaLivello(Valore As Byte) 'dà un colpo di clock modificando SOLAMENTE il bit del clock
Out Val(IndirizzoData), Val(Valore) 'clock DISATTIVATO
'aggiungo 32 perchè devo mettere ad 1 il bit del clock dello shift livello x dare il colpo di clock
Out Val(IndirizzoData), Val(Valore + 32) 'clock ATTIVATO
End Function

Public Function ClearAll() 'svuoto tutti gli shift register
Dim ByteLpt As Byte
'attivo il clear su entrambi gli shift register (valore=0) così li azzero (xx x0x x0x)
ByteLpt = 0 '00 000 000
Out Val(IndirizzoData), Val(ByteLpt)
End Function

Public Function Aspetta(Ncicli As Long) 'funzione per ritardare il ciclo di refresh del cubo
Dim Contatore As Long
Dim Contato As Long

For Contatore = 0 To Ncicli
Contato = Contatore
Next Contatore
End Function

Come potete notare, si fa immediatamente richiamo alla dll input32.dll che è necessaria per gestire la parallela su s.o. a 32 bit.
In caso il s.o. sia a 16 bit, come win 98 (nel mio caso) leggo da un sito questo:

"ISTRUZIONI PER L’USO DELLA PORTA PARALLELA CON PROGRAMMI IN VISUAL BASIC (5.X E SUCCESSIVE VERSIONI)



Visual Basic non ha istruzioni dirette di I/O per indirizzare la porta parallela, si deve utilizzare pertanto una libreria dinamica (DDL) scritta per svolgere tale funzione.

Alla libreria da utilizzare è stato assegnato il nome 32IOF.DLL.

Il file di libreria può essere scaricato come allegato dalla pagina espandi il tuo libro relativa a questo testo.

Questo file di libreria deve essere copiato nella cartella C:\WINDOWS\SYSTEM.



a) Comandi di input ed output
Le funzioni di I/O che implementano i comandi per l’input e output dei dati in Visual Basic sono:

· per l’input:

dato = Fin(&H379) per la LPT1

dato = Fin(&H279) per la LPT2

(dato è una variabile di tipo byte)



· per l’output:

Call Fout(dato, &H379) per la LPT1
Call Fout(dato, &H279) per la LPT2

attenzione: le funzioni Fin e Fout debbono essere scritte così come sono riportate, rispettando le maiuscole e le minuscole



b) Utilizzo della libreria .dll
Si ricorda che per l’utilizzazione della libreria DDL deve essere aggiunto al programma scritto in Visual Basic un modulo che contiene la dichiarazione per la chiamata della DLL. Sulla parte (dichiarazioni) (generale) del modulo debbono essere scritte le seguenti dichiarazioni, occupando per ognuna di esse un’intera riga (senza andare a capo):



Public Declare Function Fin Lib "32IOF.DLL" (ByVal ind_port As Integer) As Byte
Public Declare Function Fout Lib "32IOF.DLL" (ByVal dato As Byte, ByVal ind_port As Integer) As Byte



Rispettare anche in questo caso maiuscole /minuscole per Fin e Fout."

Ossia per win 98 bisogna utilizzare la dll 32IOF.DLL. e scrivere sul programma questo:
Public Declare Function Fin Lib "32IOF.DLL" (ByVal ind_port As Integer) As Byte
Public Declare Function Fout Lib "32IOF.DLL" (ByVal dato As Byte, ByVal ind_port As Integer) As Byte

Io chiedo se gentilmente una buon'anima può riportarmi il programma modificato per far sì che parta con win 98, chiedo di riportare solo la parte che va modificata...in poche parole dove va scritta questa parte: Public Declare Function Fin Lib "32IOF.DLL" (ByVal ind_port As Integer) As Byte
Public Declare Function Fout Lib "32IOF.DLL" (ByVal dato As Byte, ByVal ind_port As Integer) As Byte

Non capisco cosa intenda per "Si ricorda che per l’utilizzazione della libreria DDL deve essere aggiunto al programma scritto in Visual Basic un modulo che contiene la dichiarazione per la chiamata della DLL. Sulla parte (dichiarazioni) (generale) del modulo debbono essere scritte le seguenti dichiarazioni, occupando per ognuna di esse un’intera riga (senza andare a capo)".
Scusatemi ma non so molto di linguaggi di programmazione!!
Grazie anticipatamente a chi sarà disposto ad aiutarmi!

Ultima modifica di hereistay : 27-11-2009 alle 01:05.
hereistay è offline   Rispondi citando il messaggio o parte di esso
Old 27-11-2009, 16:34   #2
fero86
Senior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
Windows 98 non é un sistema a 16 bit...
fero86 è offline   Rispondi citando il messaggio o parte di esso
Old 27-11-2009, 17:30   #3
hereistay
Member
 
Iscritto dal: Nov 2009
Messaggi: 287
ah...e perchè in quella pagina c'è la distinzione per i s.o. a 32 bit e parla dei s.o. dopo win 98?
hereistay è offline   Rispondi citando il messaggio o parte di esso
Old 27-11-2009, 18:52   #4
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Windows 98 è comunemente classificato come ibrido 16/32 bit. Personalmente non ci ho mai fatto nulla di serio, data la discutibile stabilità e le pesanti limitazioni del FAT32...
Le conversioni tra API di Win98 e WinNT sono argomento abbastanza oscuro per le mie esperienze. Unico consiglio che posso dare : con VB6 ( che assieme al predecessore VB5 è 32 bit al 100% ) l'ideale è Win2000, o WinXP 32.
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione Samsung Galaxy S26 Ultra: finalmente qualcosa di nuovo Recensione Samsung Galaxy S26 Ultra: finalmente ...
Diablo II Resurrected: il nuovo DLC Reign of the Warlock Diablo II Resurrected: il nuovo DLC Reign of the...
Deep Tech Revolution: così Area Science Park apre i laboratori alle startup Deep Tech Revolution: così Area Science P...
HP OMEN MAX 16 con RTX 5080: potenza da desktop replacement a prezzo competitivo HP OMEN MAX 16 con RTX 5080: potenza da desktop ...
Recensione Google Pixel 10a, si migliora poco ma è sempre un'ottima scelta Recensione Google Pixel 10a, si migliora poco ma...
MacBook Neo sorprende iFixit: 'Non vedev...
Venus Optics presenta due nuovi obiettiv...
AMD pubblica una guida per eseguire Open...
Tomb Raider I-III Remastered arriva su A...
X fa marcia indietro: si adeguerà...
Framework e la crisi delle memorie: terz...
Doom è ovunque: perché il ...
NVIDIA aggiorna G-Sync Pulsar: migliorat...
Portatile gaming con RTX 5060 a 1.099€: ...
6G for dummies: al MWC 2026 il CEO di Qu...
Le RAM tornano a salire di prezzo: quest...
5 robot aspirapolvere bestseller al mini...
A 59 anni il mio primo hackathon: dieci ...
Come sfruttare le Offerte di Primavera p...
NVIDIA promette un salto enorme: path tr...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 07:26.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v