Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Non sai programmare? Ecco cosa si può fare con un LLM e una GeForce RTX 5070 Ti
Non sai programmare? Ecco cosa si può fare con un LLM e una GeForce RTX 5070 Ti
Con un semplice dialogo in linguaggio naturale e la potenza di una scheda video di fascia alta è possibile costruire software funzionante da zero, senza scrivere una riga di codice e senza inviare un solo byte dei propri dati a server esterni
Recensione Samsung Galaxy Z Fold8 Ultra: il pieghevole più famoso diventa quasi perfetto
Recensione Samsung Galaxy Z Fold8 Ultra: il pieghevole più famoso diventa quasi perfetto
Samsung rinnova la serie pieghevole di punta con Galaxy Z Fold8 Ultra: pannello interno da 8 pollici quasi senza piega, cerniera Flex Titanium, Snapdragon 8 Elite Gen 5 for Galaxy e batteria finalmente da 5.000 mAh. Prezzo italiano da 2.299 a 2.899 euro. Tra colorimetro, benchmark reali e giorni di uso quotidiano, ecco dove questo pieghevole convince e dove il nome Ultra fatica ancora a trovare piena giustificazione
Insta360 X6: Dolby Vision, 8K e montaggio "Zero Editing"
Insta360 X6: Dolby Vision, 8K e montaggio "Zero Editing"
La nuova Insta360 X6 introduce sensori Sony da 1/1.1" e un SoC Triple AI a 4nm. Analizziamo le riprese 8K, il primo Dolby Vision nativo a 10-bit nel settore sferico e l'innovativo flusso di lavoro diretto sulla futura versione 22 di DaVinci Resolve.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 06-07-2005, 09:05   #21
matpez
Senior Member
 
L'Avatar di matpez
 
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
Ma è qui che ti sbagli, sbagli il modo di pensare...

Una dll di quel genere è un ActiveX, e quindi va registrata e quindi già non pottresti basarti sul fatto di cercare le dll come se fossiano file, perchè nn si comportano come file.

Come già detto, il tuo programma già deve supportare tutti i tuoi plug-in, o almeno mettendola più facilemente, devi già prevedere quanti plug in vuoi fare, poi che li fai piano piano dopo che l'exe è già sul "mercato" è un altro conto. Ma quando fai un software c'è sempre un analisi, non si comincia mai scrivendo la prima riga e poi pensando alla cosa da fare dopo, ma bisogna sapere ed avere un percorso ben preciso per fare un bel lavoro, in meno tempo e soprattutto più ottimizzato.

Quindi tu devi giocare sul fatto che ti dia errore quando istanzi il tuo plug-in, li fai quello che vuoi, puoi nascondere il menu volendo, ma il tuo menu è già stato progettato con il codice per lanciare il tuo plug-in.

Tornando alla tua prima domanda, il nome della dll è un bel problema! Dentro a VB lui prende il nome dell'Applicazione che gli hai impostato alla tua dll, e quindi dentro a VB lo sai che si chiama come hai impostato tu, es: Plug_In ... e quindi li nn è un problema, il problema ma li nn ci puoi fare NULLA è che se un pirla ti rinomina, elimina o sposta una dll dalla tua cartella dove l'hai posizionata il tuo programma nn avrà più il plugin, ma se ci pensi bene, se cancelli una dll di sistema da system32, nn so poi se ti parte più il pc senza dare nessun problema.
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!"
A. Einstein
matpez è offline   Rispondi citando il messaggio o parte di esso
Old 06-07-2005, 14:37   #22
leadergl
Senior Member
 
Iscritto dal: May 2003
Messaggi: 1113
una domanda...programmi come ad esempio FireFox che permettono di estendere le loro funzionalità tramite plugin funzionano molto più dinamicamente o mi sbaglio?

non credo ci sia una limitazione sul numero di plugin caricabili o sul nome da dargli...io vorrei una cosa tipo quella ma che quando poi eseguo la plugin mi si apre una sorta di programma a parte, come hai fatto tu con la form....

è possibile arrivare ad una cosa del genere?
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC
leadergl è offline   Rispondi citando il messaggio o parte di esso
Old 06-07-2005, 18:39   #23
matpez
Senior Member
 
L'Avatar di matpez
 
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
Bhe questo nn lo so, ma sicuramente FF nn è fatto in VB


PS: ma dove si caricano i plugin in firefox ?
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!"
A. Einstein

Ultima modifica di matpez : 06-07-2005 alle 18:43.
matpez è offline   Rispondi citando il messaggio o parte di esso
Old 06-07-2005, 21:14   #24
leadergl
Senior Member
 
Iscritto dal: May 2003
Messaggi: 1113
Quote:
Originariamente inviato da matpez
Bhe questo nn lo so, ma sicuramente FF nn è fatto in VB

PS: ma dove si caricano i plugin in firefox ?
qui: https://pfs.mozilla.org/plugins/
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC
leadergl è offline   Rispondi citando il messaggio o parte di esso
Old 06-07-2005, 23:16   #25
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da leadergl
ecco quello che mi chiedo è...avendo tutti nomi uguali come faccio a distinguere le varie dll?
il fatto è che sti plugin li devi caricare a runtime con LoadLibrary e GetProcAddress, anche perché se non fai così il tuo programma non è realmente espandibile perché le dll che carica sono sempre le stesse; se invece le carichi con LoadLibrary hai la possibilità di fare un algoritmo che (ad esempio) carica tutte le dll che trova in una apposita directory per i tuoi plugin, così ogni volta che installi un nuovo plugin nella dir (cioè semplicemente ce lo copi) non appena avvii il programma ce l'hai dentro.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2005, 07:20   #26
leadergl
Senior Member
 
Iscritto dal: May 2003
Messaggi: 1113
Quote:
Originariamente inviato da 71104
il fatto è che sti plugin li devi caricare a runtime con LoadLibrary e GetProcAddress, anche perché se non fai così il tuo programma non è realmente espandibile perché le dll che carica sono sempre le stesse; se invece le carichi con LoadLibrary hai la possibilità di fare un algoritmo che (ad esempio) carica tutte le dll che trova in una apposita directory per i tuoi plugin, così ogni volta che installi un nuovo plugin nella dir (cioè semplicemente ce lo copi) non appena avvii il programma ce l'hai dentro.
diciamo che un piccolo esempio non guaterebbe

Mi son letto cosa fa ognuna di queste due API:
Codice:
LoadLibrary
The LoadLibrary function maps the specified executable module into the address space of the calling process.

VB4-32,5,6
Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long 



Parameter Information 

· lpLibFileName
Points to a null-terminated string that names the executable module (either a .DLL or .EXE file).
mentre l'altra:
Codice:
GetProcAddress
The GetProcAddress function returns the address of the specified exported dynamic-link library (DLL) function.

VB4-32,5,6
Declare Function GetProcAddress Lib "kernel32" Alias "GetProcAddress" (ByVal hModule As Long, ByVal lpProcName As String) As Long 


Parameter Information 

· hModule
Identifies the DLL module that contains the function. The LoadLibrary or GetModuleHandle function returns this handle.

· lpProcName
Points to a null-terminated string containing the function name, or specifies the function’s ordinal value. If this parameter is an ordinal value, it must be in the low-order word; the high-order word must be zero. 

Return Values 
If the function succeeds, the return value is the address of the DLL’s exported function.
ora come faccio ad usare questo per poi eseguire la mia dll?
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC

Ultima modifica di leadergl : 07-07-2005 alle 07:25.
leadergl è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2005, 15:05   #27
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
con LoadLibrary carichi la dll nel tuo processo (ti viene restituito un HMODULE, corrispondente al suo base address); con GetProcAddress invece ottieni un puntatore ad una sua funzione: GetProcAddress prende in ingresso l'HMODULE che identifica la tua dll e il nome della funzione che vuoi caricare (se la dll è scritta in C++ occhio alla decorazione dei nomi). se ad es. stabilisci che i tuoi plugin devono esportare una funzione che si chiama "PluginEntry" (nome inventato), basta che dopo aver caricato la libreria con LoadLibrary chiami GetProcAddress passandogli l'HMODULE che hai ottenuto e "PluginEntry", e ottieni l'indirizzo della funzione PluginEntry pronta da chiamare.
per caricare numerosi plugin leggendoli da una directory basta che fai ad esempio un array di strutture dati ognuna delle quali contiene l'HMODULE del plugin caricato e l'indirizzo della PluginEntry; le dimensioni dell'array corrispondono semplicemente al numero di plugin validi contenuti nella apposita directory, quindi direi che l'array deve crescere dinamicamente a mano a mano che carichi sti plugin. l'esempio te lo posso fare solo in C, o al limite in Pascal: io di BASIC conosco solo il QBasic
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2005, 16:05   #28
leadergl
Senior Member
 
Iscritto dal: May 2003
Messaggi: 1113
L'esempio in C mi sta bene...quello che non capisco è come fare ad esare il "puntatore" che mi viene restituito dalla procedura "GetProcAddress".

GetProcAddress ha in uscita un valore LONG...come lo uso? mi serve un altra funzione a cui passare questo valore e che mi esegue la funzione della mia DLL?
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC
leadergl è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2005, 16:23   #29
leadergl
Senior Member
 
Iscritto dal: May 2003
Messaggi: 1113
AHHHH forse ho capito...allora...vediamo un po!

Prima, ad esempio in un modulo, dichiaro una procedura tipo le chiamate alle API di Windows in questo modo:

Codice:
Private Declare Function AvviaPlugIN Lib "miaDll" Alias "AvviaPlugINA" (variabili) As Long
poi tramite le funzioni:
Codice:
Private Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
Private Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As Long
posso verificare se quella funzione (AvviaPlugIN) è realmente presente nella mia dll e se presente mi basterà fare:
Codice:
AvviaPlugIN
ed automaticamente partirà il tutto.

Il problema potrebbe essere nel nome della DLL ma questo lo potrei ricavare dal nome fisico della mia DLL giusto?

Il secondo problema verrebbe che in questo modo avrei una sola DLL caricabile a meno che non creo una procedura dove metto la dichiarazione della funzione...(sempre se si può fare) tipo:
Codice:
Public Sub AvviaDLL(nome_dll as string)
Dim esiste_funct as boolean

       Private Declare Function AvviaPlugIN Lib nome_dll Alias "AvviaPlugINA" (variabili) As Long

       Esiste_funct=...chiamo la procedura che verifica l'esistenza...
       if esiste_funct then AvviaPlugIN
End Sub
l'errore che posso ricevere da questa procedura è che dichiaro più volte la stessa funzione...ma credo sia risolvibile con un "On Error Resume Next"...oppure una volta avviata la funzione dovrei eliminare dalla memoria la sua dichiarazione....è possibile?

ditemi se mi sto avvicinando...

Questa la funzione per verificare l'esistenza di una funzione in una dll:
Codice:
Private Function Esiste_funct(ByVal ModuleName As String, ByVal ProcName As String) As Boolean
Dim hModule As Long
Dim lpProc As Long
Dim FreeLib As Boolean
   
   'carichiamo il modulo
   hModule = LoadLibrary(ModuleName)
   FreeLib = True
   
   'se il modulo è caricato allora verifichiamo
   'se la procedura esiste
   If hModule Then
      lpProc = GetProcAddress(hModule, ProcName)
      Esiste_funct = (lpProc <> 0)
   End If
   
   'scarichiamo la libreria dalla memoria
   If FreeLib Then Call FreeLibrary(hModule)
End Function
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC
leadergl è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2005, 16:34   #30
leadergl
Senior Member
 
Iscritto dal: May 2003
Messaggi: 1113
tra le altre cose posso anche dichiarare:
Codice:
Private Declare Function AvviaPlugIN Lib "miaDll.dll" Alias "AvviaPlugINA" (variabili) As Long
quindi risolverei un problema...

rimarrebbe questo:
Quote:
l'errore che posso ricevere da questa procedura è che dichiaro più volte la stessa funzione...ma credo sia risolvibile con un "On Error Resume Next"...oppure una volta avviata la funzione dovrei eliminare dalla memoria la sua dichiarazione....è possibile?
xkè nn sono troppo sicuro che si possa fare come ho detto nella parte evidenziata...
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC
leadergl è offline   Rispondi citando il messaggio o parte di esso
Old 08-07-2005, 13:06   #31
leadergl
Senior Member
 
Iscritto dal: May 2003
Messaggi: 1113
ehi mi sto avvicinando?
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC
leadergl è offline   Rispondi citando il messaggio o parte di esso
Old 08-07-2005, 14:08   #32
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da leadergl
ehi mi sto avvicinando?
ehm, non lo so se ti stai avvicinando perché sei andato in 70mila direzioni diverse
cmq tornando alla GetProcAddress: non ti era chiaro come dovevi usare il risultato; be', fisicamente devi solo usarlo in una CALL, quel LONG contiene l'indirizzo della funzione che devi chiamare; memorizzalo in un puntatore a funzione con un cast e poi chiama la funzione tramite il puntatore. più chiaro di così...
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 08-07-2005, 14:51   #33
leadergl
Senior Member
 
Iscritto dal: May 2003
Messaggi: 1113
Quote:
Originariamente inviato da 71104
ehm, non lo so se ti stai avvicinando perché sei andato in 70mila direzioni diverse
cmq tornando alla GetProcAddress: non ti era chiaro come dovevi usare il risultato; be', fisicamente devi solo usarlo in una CALL, quel LONG contiene l'indirizzo della funzione che devi chiamare; memorizzalo in un puntatore a funzione con un cast e poi chiama la funzione tramite il puntatore. più chiaro di così...

con codice pratico si farebbe come?
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC
leadergl è offline   Rispondi citando il messaggio o parte di esso
Old 09-07-2005, 09:06   #34
leadergl
Senior Member
 
Iscritto dal: May 2003
Messaggi: 1113
la GetProcAddress mi restituisce sempre 0...xkè?
l'altra invece mi da un valore...
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC
leadergl è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Non sai programmare? Ecco cosa si può fare con un LLM e una GeForce RTX 5070 Ti Non sai programmare? Ecco cosa si può far...
Recensione Samsung Galaxy Z Fold8 Ultra: il pieghevole più famoso diventa quasi perfetto Recensione Samsung Galaxy Z Fold8 Ultra: il pieg...
Insta360 X6: Dolby Vision, 8K e montaggio "Zero Editing" Insta360 X6: Dolby Vision, 8K e montaggio "...
Due settimane con Dacia Spring 2026: novità, consumi, autonomia reale e test bagagli Due settimane con Dacia Spring 2026: novit&agrav...
AORUS GeForce RTX 5080 INFINITY WOOD 16G: una scheda video diversa dalle altre AORUS GeForce RTX 5080 INFINITY WOOD 16G: una sc...
Polaroid lancia una nuova serie di fotoc...
Starship: prosegue il recupero di Ship 4...
OpenAI lancia ChatGPT Teens: sotto i 18 ...
Leapmotor sbarca in Argentina: la sfida ...
Operazione Blue Skies: così Googl...
Dietro la piattaforma che rivende DeepSe...
Kentucky, la scuola fa strappare 17 pagi...
Questa è la regina in Cina, e sta...
Samsung è sempre più leader del mercato ...
Snapdragon X2 Elite Extreme domina i ben...
Phantom Blade Zero: nuovi dettagli su st...
Honor testa batterie fino a 12.000 mAh p...
Spotify introduce Playlist Notes: ora ut...
Apple prepara gli AirPods con fotocamera...
Pokémon Center vittima di un attacco hac...
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: 05:42.


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