Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Con velocità teoriche fino a 11 Gbps, gestione tramite app intelligente e protezione avanzata dei dispositivi, Roamii BE Pro porta il Wi‑Fi 7 tri‑band nelle abitazioni più esigenti. Un sistema Wi-Fi Mesh proposto da MSI allo scopo di garantire agli utenti una rete fluida e continua capace di sostenere streaming 8K, gaming competitivo e le applicazioni moderne più esigenti in termini di banda
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Mate X7 rinnova la sfida nel segmento dei pieghevoli premium puntando su un design ancora più sottile e resistente, unito al ritorno dei processori proprietari della serie Kirin. L'assenza dei servizi Google e del 5G pesa ancora sull'esperienza utente, ma il comparto fotografico e la qualità costruttiva cercano di compensare queste mancanze strutturali con soluzioni ingegneristiche di altissimo livello
Nioh 3: souls-like punitivo e Action RPG
Nioh 3: souls-like punitivo e Action RPG
Nioh 3 aggiorna la formula Team NINJA con aree esplorabili più grandi, due stili di combattimento intercambiabili al volo (Samurai e Ninja) e un sistema di progressione pieno di attività, basi nemiche e sfide legate al Crogiolo. La recensione entra nel dettaglio su combattimento, build, progressione e requisiti PC
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 28-04-2009, 11:59   #1
Mantis-89
Senior Member
 
L'Avatar di Mantis-89
 
Iscritto dal: Jul 2008
Città: Solesino (PD)
Messaggi: 1255
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, 12: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, 12:57   #3
Mantis-89
Senior Member
 
L'Avatar di Mantis-89
 
Iscritto dal: Jul 2008
Città: Solesino (PD)
Messaggi: 1255
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, 19: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, 08:58   #5
Mantis-89
Senior Member
 
L'Avatar di Mantis-89
 
Iscritto dal: Jul 2008
Città: Solesino (PD)
Messaggi: 1255
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, 10:55   #6
Mantis-89
Senior Member
 
L'Avatar di Mantis-89
 
Iscritto dal: Jul 2008
Città: Solesino (PD)
Messaggi: 1255
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


Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo M...
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi Recensione HUAWEI Mate X7: un foldable ottimo, m...
Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti Test in super anteprima di Navimow i220 LiDAR: i...
Dark Perk Ergo e Sym provati tra wireless, software via browser e peso ridotto Dark Perk Ergo e Sym provati tra wireless, softw...
Sony chiude definitivamente con i regist...
Renault Twingo E-Tech Electric sotto i 2...
Auto elettriche, il freddo non fa pi&ugr...
Amazon, ancora sconti sugli smartphone: ...
Il dispositivo hardware AI di Jony Ive p...
Wikipedia valuta il blocco di Archive.to...
Cupra Tavascan primo veicolo cinese a en...
openSIL, il firmware open-source di AMD ...
Da dove avete scaricato 7-zip? Il vostro...
Fotocamera selfie da 100 megapixel: la n...
Robot aspirapolvere in super offerta su ...
Addio a GPT-4o, il modello empatico (e p...
Razer Boomslang 20th Annyversary Edition...
Nintendo contro la pirateria: bloccati d...
NIS2 entra nel vivo: la soluzione di Cyn...
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: 15:14.


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