Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato
Nuova frontiera per i robot tagliaerba, con Ecovacs GOAT O1200 LiDAR Pro che riconosce l'ambiente in maniera perfetta, grazie a due sensori LiDAR, e dopo la falciatura può anche rifinire il bordo con il tagliabordi a filo integrato
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere?
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere?
Equilibrio e potenza definiscono il Samsung Galaxy S26+, un flagship che sfida la variante Ultra e la fascia alta del mercato con il primo processore mobile a 2nm. Pur mantenendo l'hardware fotografico precedente, lo smartphone brilla per un display QHD+ da 6,7 pollici d'eccellenza, privo però del trattamento antiriflesso dell'Ultra, e per prestazioni molto elevate. Completano il quadro la ricarica wireless a 20W e, soprattutto, un supporto software settennale
Zeekr X e 7X provate: prezzi, autonomia fino a 615 km e ricarica in 13 minuti
Zeekr X e 7X provate: prezzi, autonomia fino a 615 km e ricarica in 13 minuti
Zeekr sbarca ufficialmente in Italia con tre modelli elettrici premium, X, 7X e 001, distribuiti da Jameel Motors su una rete di 52 punti vendita già attivi. La Zeekr X parte da 39.900 euro, la 7X da 54.100: piattaforma a 800V, chip Snapdragon di ultima generazione, ricarica ultraveloce e un'autonomia dichiarata fino a 615 km WLTP. Le prime consegne sono previste a metà aprile
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 28-04-2009, 10:59   #1
Mantis-89
Senior Member
 
L'Avatar di Mantis-89
 
Iscritto dal: Jul 2008
Città: Solesino (PD)
Messaggi: 1256
Differenza tra DLL e OCX

Salve a tutti,
qualcuno potrebbe gentilmente spiegarmi la differenza tra dll e ocx?
Ho creato un piccolo programmino(in c++) a riga di comando che accetta dei parametri in ingresso e mi stampa a video una stringa. Partendo da questo vorrei richiamarlo da un altra apllicazione e per questo credo mi serva una dll o un ocx.

Grazie in anticipo.
__________________
Desktop: AMD FX-8350 @4,2Ghz + A.C. FREEZER XTREME rev.2 - ASUS M5A99X EVO - 32GB DDR3 (4x8GB) @1866Mhz - Sapphire NITRO+ RX 580 8GB - SSD Crucial MX500 1TB - Antec Two Hundred - Seasonic Focus+ Platinum 650W
Always remember to K.I.S.S.
Mantis-89 è offline   Rispondi citando il messaggio o parte di esso
Old 28-04-2009, 11:33   #2
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
non credo ti serva nessuno dei due, basta che fai il redirect degli standard streams impostando gli handles di tre pipes nella struttura STARTUPINFO che passi alla CreateProcess.

comunque una DLL é un modulo eseguibile che puó esportare simboli (dove per simboli si intende solitamente variabili e funzioni) ed essere caricato da processi che importano i simboli esportati; un OCX invece é una DLL contenente un controllo ActiveX, quindi un server COM in-process; fondamentalmente un server COM in-process é una DLL che esporta quattro funzioni:
  • DllRegisterServer - funzione che installa il server sul computer registrandolo nel registro di sistema
  • DllUnregisterServer - funzione che disinstalla il server
  • DllCanUnloadNow - funzione dal nome autoesplicativo richiamata dagli algoritmi ottimizzati di COM per gestire il caricamento dei server in-process all'interno dei processi
  • DllGetClassObject - funzione che restituisce il factory object implementato dal server in-process, cioé un oggetto che espone l'interfaccia IClassFactory o IClassFactory2 e che permette l'istanziamento degli oggetti implementati dal server (quindi degli oggetti ActiveX nel caso di un OCX)

se non hai capito neanche una parola allora lascia perdere DLL e OCX, non é roba da 5 minuti; la CreateProcess invece si impara in fretta.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 28-04-2009, 11:57   #3
Mantis-89
Senior Member
 
L'Avatar di Mantis-89
 
Iscritto dal: Jul 2008
Città: Solesino (PD)
Messaggi: 1256
Quote:
Originariamente inviato da 71104 Guarda i messaggi
se non hai capito neanche una parola allora lascia perdere DLL e OCX, non é roba da 5 minuti; la CreateProcess invece si impara in fretta.
mm.. qualcosa ho capito dai

Provo a spiegarti meglio il mio problema: l'applicazione principale è scritta in Visual FoxPro, però visto che non è il massimo dal punto di vista della sicurezza del codice vorremmo "esternare" alcune funzioni importanti scrivendole in un linguaggio più sicuro. Per questo ho scelto il c++ e ho realizzato un programmino di prova.

Secondo te tra dll e ocx quale mi conviene? Se non ho capito male tramite l'ocx potrei creare un oggetto all'interno del mio programma e utilizzarne le funzioni quando voglio giusto? Mentre con la dll non avrei un vero e proprio oggetto ma mi limiterei a richiamare le funzioni che ho creato..?
Spero di aver capito qualcosa di giusto.

Cmq non mi preoccupa il fatto di perderci del tempo, voglio che venga fuori un bel lavoro e sono disposto a studiarmi bene la cosa. Mi basta sapere da cosa partire e cosa mi serve per andare avanti.

Grazie .
__________________
Desktop: AMD FX-8350 @4,2Ghz + A.C. FREEZER XTREME rev.2 - ASUS M5A99X EVO - 32GB DDR3 (4x8GB) @1866Mhz - Sapphire NITRO+ RX 580 8GB - SSD Crucial MX500 1TB - Antec Two Hundred - Seasonic Focus+ Platinum 650W
Always remember to K.I.S.S.
Mantis-89 è offline   Rispondi citando il messaggio o parte di esso
Old 28-04-2009, 18:38   #4
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
non ho mai usato Visual FoxPro e quindi non ho idea di come sia possibile dal suo interno utilizzare una DLL o un OCX, quindi in altre parole non risponderti

per quanto riguarda la differenza tra DLL e OCX credo che tu abbia intuito bene: una DLL non fa che esportare simboli (nella stragrande maggioranza dei casi funzioni) che possono essere richiamate da altri moduli eseguibili, quindi in sostanza una DLL é una "libreria" di codice riutilizzabile; DLL sta proprio per Dynamic-Link Library.
un OCX invece é una DLL che implementa un tipo specifico di server COM: si tratta infatti di un server COM in-process che permette di istanziare oggetti ActiveX, cioé oggetti COM che espongono determinate interfacce.

se hai la possibilitá dall'interno di Visual FoxPro di invocare le funzioni esportate da una DLL allora la strada della DLL é di gran lunga preferibile a quella dell'OCX perché devi apprendere un centesimo delle cose; per gli OCX invece ti avverto, é molto lunga peró c'é da dire che quando avrai studiato una tecnologia cosi importante e tutt'oggi ancora cosi influente nonostante .NET avrai capito molto dell'universo user-mode di Windows, compreso il motivo percui il DLL Hell non é mai esistito (é un problema inventato dalle terze parti che poi ovviamente é toccato a Microsoft risolvere).

questo é il punto di partenza per le DLL:
http://msdn.microsoft.com/en-us/libr...89(VS.85).aspx

per gli OCX invece devi partire da qui:
http://msdn.microsoft.com/en-us/libr...73(VS.85).aspx

studiandoti i seguenti argomenti (quello che non ho segnato puoi saltarlo a pié pari, il problema é che ho segnato quasi tutto ):

in COM Fundamentals:
  • The Component Object Model
  • Processes, Threads and Apartments
  • COM Clients and Servers
  • Defining COM Interfaces (salta qualunque cosa parli di proxy/stub e marshalling, non dovrebbe servire per un ActiveX)
  • Registering COM Applications
  • Error Handling in COM (questo é una cazzata e probabilmente se ci arriverai sará inutile leggerlo perché saprai giá tutto)
  • Events in COM and Connectable Objects
  • Component Categories Manager Implementation (questo non ricordo se serve per gli OCX, credo di si, ma se arrivi a studiare fin li sará oltremodo facile)

in Controls and Property Pages, naturalmente tutto anche se forse le Property Pages non ti serviranno (dipende da cosa vuoi realizzare).

in Automation Programming Reference:
  • Overview of Automation
  • Exposing ActiveX Objects
  • Accessing ActiveX Objects
  • ...
in quest'ultima sezione avrai piu volte la sensazione che ti stia ripetendo per la milionesima volta cose giá dette nelle due sezioni precedenti. i puntini di sospensione finali stanno a significare "per il resto boh, vedi tu "; tanto arrivato a quel punto o saprai tutto quello che serve di sapere o sarai ampiamente in grado di giudicare se ti serve di sapere qualcos'altro.

per finire, la sezione su MIDL (Microsoft Interface Definition Language) la consulterai piu che altro come reference del linguaggio MIDL che avrai appreso giá nelle sezioni precedenti, mentre lo Structured Storage credo proprio che lo salterai (parla dei meccanismi che servono a rendere persistente un oggetto COM, cioé come gestire il "salvataggio" del tuo oggetto su file e come "ripristinarlo". sapevi che la shell di Windows vede tutto come un oggetto OLE? ).


per quanto riguarda la sezione fondamentale, COM Fundamentals, puoi saltare tutta la parte relativa al marshalling (che non avviene mai per i controlli ActiveX locali), ai proxy/stub e alla sicurezza; se poi, in seguito, ti rendi conto che ti é utile anche la parte sulla sicurezza, allora studiati anche quella.
per darti un'idea di cosa faccia il sistema di sicurezza di DCOM* ti dico molto sinteticamente che serve ad autenticare i client che fanno uso di oggetti COM e a proteggere ogni singolo metodo di un oggetto COM da chiamate provenienti da client autenticati con identitá non autorizzate; si tratta di un sistema robusto basato a sua volta sul sistema di sicurezza del sistema operativo.

* COM e DCOM sono quasi la stessa cosa: DCOM sta per Distributed COM e si parla di DCOM anziché di COM quando si parla di server COM che girano su macchine remote; non ha senso parlare di sicurezza in COM perché se il server é locale puó essere facilmente hackerato, specialmente se é un server in-process e specialmente se usa un threading model tale da non aver bisogno di un proxy per il marshalling (a quel punto il sistema di sicurezza é totalmente assente visto che é implementato proprio dai proxy/stub).
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 29-04-2009, 07:58   #5
Mantis-89
Senior Member
 
L'Avatar di Mantis-89
 
Iscritto dal: Jul 2008
Città: Solesino (PD)
Messaggi: 1256
Per utilizzare una dall in FoxPro dovrebbe dovrebbe essere questo:
Codice:
DECLARE TipoRestituito NomeFunzione IN NomeDLL.dll TipoParametro1 @, TipoParametro2 @, ....
per ogni funzione che si vuole utilizzare della dll.
Ieri ho provato a fare una dll seguendo quello che ho trovato in rete ma da errore perchè non riesce a trovare il punto d'ingresso. Ora mi studio quello che mi hai suggerito e vedo dove sbaglio.
Ti ringrazio per la spiegazione, ora ho le idee più chiare e so da dove posso iniziare, grazie!
__________________
Desktop: AMD FX-8350 @4,2Ghz + A.C. FREEZER XTREME rev.2 - ASUS M5A99X EVO - 32GB DDR3 (4x8GB) @1866Mhz - Sapphire NITRO+ RX 580 8GB - SSD Crucial MX500 1TB - Antec Two Hundred - Seasonic Focus+ Platinum 650W
Always remember to K.I.S.S.
Mantis-89 è offline   Rispondi citando il messaggio o parte di esso
Old 29-04-2009, 09:55   #6
Mantis-89
Senior Member
 
L'Avatar di Mantis-89
 
Iscritto dal: Jul 2008
Città: Solesino (PD)
Messaggi: 1256
Credo di aver fatto qualche passo in avanti, ora non mi da più errori, anche se non funziona ancora come vorrei(adesso cerco di approfondire).

Se ci fossero altri interessati all'argomento segnalo anche questa pagina qui.
__________________
Desktop: AMD FX-8350 @4,2Ghz + A.C. FREEZER XTREME rev.2 - ASUS M5A99X EVO - 32GB DDR3 (4x8GB) @1866Mhz - Sapphire NITRO+ RX 580 8GB - SSD Crucial MX500 1TB - Antec Two Hundred - Seasonic Focus+ Platinum 650W
Always remember to K.I.S.S.
Mantis-89 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato Ecovacs Goat O1200 LiDAR Pro: la prova del robot...
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere? Recensione Samsung Galaxy S26+: sfida l'Ultra, m...
Zeekr X e 7X provate: prezzi, autonomia fino a 615 km e ricarica in 13 minuti Zeekr X e 7X provate: prezzi, autonomia fino a 6...
Marathon: arriva il Fortnite hardcore Marathon: arriva il Fortnite hardcore
HP Imagine 2026: abbiamo visto HP IQ all’opera, ecco cosa può (e non può) fare HP Imagine 2026: abbiamo visto HP IQ all’opera, ...
Le 10 migliori offerte Amazon di Pasqua:...
Nuove fotografie dagli astronauti di Art...
La toilette della capsula Orion Integrit...
GeForce NOW: ecco tutte le novità in arr...
Il Realme 16 5G debutta sul mercato glob...
HONOR svela tre nuovi tablet: il più int...
Tineco Floor One S9 Master: aspira e pul...
Vivo X300 Ultra, il lancio globale è ini...
Offerte robot aspirapolvere Amazon: ECOV...
L'AI genera codice in 8 minuti e i senio...
Ring Intercom Audio a 44,99€ su Amazon: ...
Apple iPhone 16 crolla a 689€: ecco perc...
Google Pixel 9 a 449,90€ con caricatore ...
Ecco la top 7 delle offerte Amazon, aggi...
Ex ingegnere ammette il sabotaggio: migl...
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: 19:40.


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