Newsgroup: it.comp.lang.visual-basic
Titolo: Creazione e utilizzo dll

Ho scaricato dal SC l'articolo sulla creazione della dll in C per VB.
Sarà che non conosco bene il VC++6, che è l'unico compilatore C che ho, ma
a me non funziona.
Quando uso la funzione in un progetto VB mi dice che
non riesce a trovare il punto di ingresso alla funzione.
Ci ho provato più
volte e non ho capito dove sbaglio.
Se qualcuno di voi fosse così gentile
da dirmi come si crea una dll in VC++6 con parole molto povere ( quasi per
un imbecille, perchè è così che mi sento quando si tratta di C ) gliene
sarei eternamente grato.
Il problema è che non so neanche come utilizzare
l'IDE del VC per creare una dll( quali finestre aprire?!?, creare o no dei
workspace e quali ?!?, dove scrivere il codice ?!?) e quindi non sono mai
sicuro di quello che faccio. Non ho trovato neanche un esempio completo in
rete e quindi sono bloccato.
Grazie a tutti.
Ciao, Claudio.
--------------------------------
Inviato via 
http://usenet.iol.it

Ciao,
e' tutto abbastanza semplice dal punto di vista della creazione della dll,
un po' meno per quel che riguarda la correttezza della programmazione ed il
passaggio di parametri, ma per quest'ultimo aspetto ognuno balla con sua
nonna.
Veniamo a noi:
avvia il vc6
menu file -> nuovo -> projects
seleziona Win32 Dynamic-Link Library e inserisci il nome progetto e conferma
seleziona "A simple Dll project" e conferma conferma conferma ;o)
A questo punto a sx dello schermo avrai disponibile il  + <nome progetto>
classes, lo espandi ed hai il + Globals, lo espandi e, Hop! magia, compare
la DllMain(...) ci dblclick sopra e si apre l'editor con la main d'ingresso
gia' belle e pronta.
A questo punto digiti il tuo codice sul tipo:
DllMain(...){
//qui lasci tutto invariato
}
extern "C" __declspec(dllexport) ... ecc.ecc. NomeFunz1(...){
//codice tua funzione1
}
extern "C" __declspec(dllexport) ... ecc.ecc. NomeFunz2(...){
//codice tua funzione2
}
vai nel menu Build -> Rebuild All e se tutto è corretto hai la tua DLL.
Auguri!!! :o)
beppe
-----------------------------------------------------------
Visita il sito del WWF AltoFerrarese
http://www.comune.cento.fe.it/wwfaf
-----------------------------------------------------------

progetto>
a me compare
<nome progetto> classes senza il segno + e quindi senza niente da
espandere.
Come lo risolvo ?
Grazie mille.


No scusa, hai ragione !!
Mi ostinavo a voler creare un progetto dll
vuoto.
Ok, adesso ho capito dove dichiarare le funzioni. Solo che la
dichiarazione della dllmain è fatta così:
// test.cpp : Defines the
entry point for the DLL application.
//
#include "stdafx.h"
BOOL
APIENTRY DllMain( HANDLE hModule, 
                       DWORD
ul_reason_for_call, 
                       LPVOID lpReserved
					 )
{
return TRUE;
}
lascio comunque tutto invariato ?
Grazie ancora per
l'aiuto.


Ciao,
Yyyyeeeeesssseer!!! ;o)


Scusa ma per l'emozione di avere finalmente qualcuno che cerca di aiutarmi
(č da tempo che pongo questo problema ciclicamente senza riuscire a
risolverlo) sto scrivendo e mi sto rispondendo da solo !
Comunque
finalmente sono riuscito a compilare una semplice dll con una funzione che
fa una somma. Funzionaaaaaaaaaaaaaaaa !!!
Mi č rimasto un solo dubbio
circa la dichiarazione (da dove lo prendo l'alias ? ) ma funziona anche
cosě.
Grazie ancora.


Ciao,
l'alias e' sempre composto da ("_" underscore) + (nome della funzione cosi'
come dichiarata nella dll) + "@" + (numero dei parametri passati alla
funzione * 4)


Tutto chiaro .... mi funziona tutto.
