Newsgroup: it.comp.programmare.win32
Titolo: Dll con Dev-C++

Gentilmente potreste indicarmi l'url di un sito nel quale spieghi
meticolosamente come creare una dll con Dev-C++ ???
Grazie!

 meticolosamente come creare una dll con Dev-C++ ???
Non è un pò vecchio quel tool? 
-- 
Lawrence - 
http://www.oluyede.org/blog
"Nothing is more dangerous than an idea
if it's the only one you have" - E. A. Chartier

 ha scritto nel messaggio
news:1hl9qu2.y17f1818oy6m8N%rhy...@myself.com...


 
Se non vuoi avere (troppi) problemi scaricati la versione express
del VisualC (liberamente utilizzabile)
http://msdn.microsoft.com/vstudio/express/visualC/default.aspx
HTH
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 ha scritto nel messaggio 
news:89b19a7ffa89edd516f...@mygate.mailgate.org...


 Spero che con questo riuscirò a costruire facilmente la mia buona DLL.
Appena avrai finito quel download, dovrai iniziare quello dell'SDK,
altrimenti non potrai realizzare programmi nativi, ma solo .NET e
potrai dire addio agli sperati aumenti di velocita'.
Una cosa da tenere presente quando si realizza una DLL e' la calling
convention delle funzioni esportate. I compilatori MS supportano
esplicitamente 3 tipi di calling convention stddef, cdecl e fastcall.
Quella che si usa di solito e' la cdecl. Se usi il C++, stai anche
attento ad esportare le funzioni come extern C, in caso contrario
il compilatore effettuera' il mangling dei nomi e sara' ancora piu'
complicato far vedere le funzioni esportate al programma VB.
Infine tieni presente che far comunicare un'applicazione VB con
una DLL non e' proprio una cosa immediata.


CUT>
Se devi utilizzare le API esportate dalla DLL  C++ in VB devi utilizzare la
convenzione stddef, altrimenti da VB funziano.
Sko


La fretta... devi preporre all'esportazione delle API __stdcall
Ciao
  Sko

Ciao,

Premetto che l'ho usato una volta sola per creare una dll, cmq ha
funzionato tutto benissimo.
La faccenda è abbastanza semplice: quando si decide di creare un nuovo
progetto, basta che si scelga la voce "dll" invece delle altre. Da lì
in poi basta che scrivi il codice che ti serve (cosa che è generica
per ogni ide/compilatore, cioè lo stesso codice dovrebbe funzionare
dovunque) e al momento della compilazione verrà creata una dll, invece
che un'applicazione.
La documentazione sul devc++ è reperibile qui:
http://www.bloodshed.net/dev/doc/index.html
Saluti,
Giuliano

 Chissà quando terminerà il download (circa 1.5 Gb)
Non mi risulta affatto che la ISO occupi cosi tanto, dato che è
masterizzabile su un CD
Qui da me occupa 463 mega, poi non so cosa tu stia scaricando eh...


 Qui da me occupa 463 mega, poi non so cosa tu stia scaricando eh...
***
Sto scaricando Visual C++ 2005 Express Edition
prima di iniziare il download mi ha avvertito che avevo bisogno di 1.5 Gb di 
spazio nel disco.
Vuol dire che, in fase di installazione, scompatterà alcuni dati... 

 ha scritto nel messaggio 
news:1157616246.9...@m79g2000cwm.googlegroups.com...



..parti da quello di TEST .. ti costruisce l'ossatura
Sko

 Vuol dire che, in fase di installazione, scompatterà alcuni dati... 
Si si, pensavo che fosse il download ad essere cosi grosso...


 ha scritto nel messaggio 
news:ZtRLg.97777$zy5.1...@twister1.libero.it...


 ha scritto nel messaggio 
news:edpge3$ekq$1...@carabinieri.cs.interbusiness.it...
errata corrige. Continuo qui:
mi appare questa immagine: 
www.salvatorepaci.it/temp/dev.gif
cosa devo fare a questo punto?
ci deve essere gią un progetto preesistente o devo cominciare da capo?

 meticolosamente come creare una dll con Dev-C++ ???
Il Dev-C++ non lo uso da molto, ma non credo che serva una laurea apposta 
(con tesi intitolata "Manuale per la creazione di DLL col Dev-C++").
A parte l'ironia (che generalmente non faccio mai), prova a fare cosě:
1) Crea un progetto vuoto (console per esempio) e cancella i file che l'IDE 
crea per te.
2) Vai sulle "Opzioni del progetto" e seleziona DLL.
3) Inserisci questi files:
a) DLLHeader.h
#ifndef _DLL_HEADER_
#define _DLL_HEADER_
#include<iostream>
#ifdef CREATING_DLL
__declspec(dllexport) void DLLFunction();
__declspec(dllexport) int DLLIntVariable=-250;
#else
__declspec(dllimport) void DLLFunction();
__declspec(dllimport) int DLLIntVariable;
#endif
#endif
b) CreatingDLL.cpp
#define CREATING_DLL
#include"DLLHeader.h"
using namespace std;
void DLLFunction()
{
cout<<"The function that writes this line is contained in the DLL"<<endl;
}
4) Compila la DLL.
5)Per usarla crea un altro progetto "console", aggiungi (linka) la libreria 
(.a) creata prima e inserisci il codice:
#include"DLLHeader.h"
#include<conio.h>
using namespace std;
int main()
{
DLLFunction();
cout<<"DLLIntVariable="<<DLLIntVariable;
cout<<"\n\nPress any key to quit"<<endl;
getch();
return 1;
}
6)Spero che tutto funzioni, io questo codice non l'ho mai provato sul 
Dev-C++...

Non è un pò vecchio quel tool? 
Non direi, visto che si basa su MinGW32 e quindi su gcc.

Spero che con questo riuscirò a costruire facilmente la mia buona DLL.
Anche con Dev-C++ ci riesci, non capisco quale sia la difficoltà.
Scegliendo un nuovo progetto, lui ti propone anche la scelta "DLL" e
ti propone lo scheletro con un esempio di funzione esportata.
Più semplice di così si muore.
Poi, scusami tanto, ma esiste Google:
http://www.google.it/search?hl=it&q=creating+dll+Dev+C%2B%2B&btnG=Cerca&meta=

 Non direi, visto che si basa su MinGW32 e quindi su gcc.
Dall'homepage:
Dev-C++ 5.0 beta 9.2 (4.9.9.2) (9.0 MB) with Mingw/GCC 3.4.2
Dev-C++ version 4.9.9.2, includes full Mingw compiler system with GCC
3.4.2 and GDB 5.2.1 See NEWS.txt for changes in this release.
A me GCC 3.4.2 mi pare un pò vecchio :D
Poi immagino che essendo un IDE si possa facilmente rimpiazzare il GCC
sottostante configurando i PATH.
Avrei dovuto essere + specifico nella mia risposta :)


Avrei dovuto essere + specifico nella mia risposta :)
Non per nulla ho scritto "...e quindi su gcc", sottintendendo che se
cambi il compilatore sottostante, sei di nuovo a cavallo.

 Non è un pò vecchio quel tool?
Assolutamente no.

 sottostante configurando i PATH.
Dall'homepage:
Features are :
- Support GCC-based compilers
:-)
Credo che per fare una DLL non serva avere tutto all'ultima moda nè
scricarsi un quintale di roba da ms.

 ci deve essere già un progetto preesistente o devo cominciare da capo?
il DevC ti crea due progetti: uno è quello per creare la dll stessa,
mentre l'altro è quello per testare la dll ;)
I parametri che ti fa configurare sono, dall'alto verso il basso, il
nome del progetto, il nome da dare al file compilato e dove salvarlo
(ma non ricordo bene questa voce, quindi potrei sbagliarmi), il nome da
dare al file sorgente. Seguendo l'ordine ci sono i dati per il progetto
di test, che ti servirà per provare la dll che generi. E qui i
parametri sono simili a quelli di sopra, cioè nome del progetto, dove
salvare e con che nome (ma anche qui non sono sicuro) e nome del file
sorgente. Sinceramente non vedo dove sia il problema, perché mi sembra
tutto lampante e cmq fa' una prova: non dovrebbe esplodere nulla :)
Riguardo l'obsolescenza del DevC: l'interfaccia grafica mi sembra ok,
magari non avrà le ombreggiature delle icone che hanno altri ide, ma
non ne farei un dramma, anche in considerazione del fatto che è
gratuito. Sull'obsolescenza del compilatore: DevC supporta più
compilatori, basta settare il PATH e lui ne usa uno piuttosto che un
altro.
Giuliano

 ha scritto nel messaggio 
news:45003989$0$13732$5fc...@news.tiscali.it...
c:\dll\creatingdll.o(.text+0x46):creatingdll.cp: undefined reference to 
`endl(ostream &)'
c:\dll\creatingdll.o(.text+0x53):creatingdll.cp: undefined reference to 
`cout'
c:\dll\creatingdll.o(.text+0x58):creatingdll.cp: undefined reference to 
`ostream::operator<<(char const *)'
Warning: no export definition file provided
dllwrap will create one, but may not be what you want
C:\DEV-C_~1\Bin\dllwrap: gcc exited with status 1
questi sono i messaggi di errore derivanti dalla compilazione

 Non direi, visto che si basa su MinGW32 e quindi su gcc.
infatti io approvo l'uso del MinGW, ma quell'IDE diciamocelo, quantomeno
non è proprio dei migliori (oggi sono gentile)... io piuttosto che usarlo
preferirei scrivere con blocco note e compilare da linea di comando :P
e comunque il fatto che si basi su MinGW non ne fa un IDE moderno.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 soltanto ringraziare.
esiste ancora qualcuno che non sa che Visual C++ 2005 Express è gratis :)
ti avviso, non si può pretendere che VC2005 + PSDK richiedano meno risorse
di Dev-C++, ma nella maggior parte dei casi IMHO ne vale la pena.


 (solitamente le eliminazioni dei for).
***
cosa posso usare invece che i for?
Se, ad esempio, ho la necessità di scorrere tutte le permutazioni di due 
serie da 90...
cosa potrei fare al posto del codice seguente?
for elemento1 = 1 to 89
    for elemento2 = elemento1 + 1 to 90
.
.
.

     for elemento2 = elemento1 + 1 to 90
Il problema è molto più complesso di quello che sembra. Si tratta di
fare analisi degli algoritmi usati e vedere se si possono ottimizzare...
Non è un for su 90 elementi che rallenta un programma ma magari quello
che ci fai con quei 90 elementi :D


e comunque il fatto che si basi su MinGW non ne fa un IDE moderno.
Irrilevante.  Nessuno ha mai detto che è un IDE all'ultima moda, ma
MinGW si basa su gcc, quindi se si è preoccupati delle eventuali
mancanze del compilatore alla base, perché obsoleto, si fa presto a
sbarazzarsi di questa preoccupazione, sostituendo il gcc con l'ultima
versione.


Intanto,caso mai è: creatingdll.cpp, non creatingdll.cp, ma sembra che 
questo sia ininfluente.
Poi: io ho "std::cout" e "std::endl" raggiungibili dall' "#include 
<iostream>" (incluso dal file creatingDLL.h).
Prova a includere "iostream.h" al suo posto per vedere se li trova, oppure 
semplicemente usa printf:
printf("The function that writes this line is contained in the DLL");
invece della linea col "cout" in creatingdll.cpp.
Non mi pare che gli errori che hai riportato siano di difficile soluzione...