PDA

Visualizza la versione completa : [C++] Creare DLL con Visual C++


Il Pazzo
05-11-2006, 15:03
Uso visual studio 2005... vorrei creare una dll di funzioni (se ho capito bene ne esistono diverse di dll)... come si fa?

XWolverineX
05-11-2006, 15:29
Devi farla in C?
C++? Visual Basic? C#??

Il Pazzo
05-11-2006, 15:49
c++

XWolverineX
05-11-2006, 15:51
Vai nella sezione progetti C++ e fai Dinamic Link Library (DLL) o Static Link Library (LIB)

Il Pazzo
05-11-2006, 16:34
non c'... ci sono librerie di classi e librerie di windows form.. ma quelle no...

oregon
05-11-2006, 16:36
File -> Nuovo -> Progetto -> Visual C++ -> Win32 -> Progetto Win32 -> Tipo applicazione: DLL

MItaly
05-11-2006, 17:02
Stai usando VC++.NET Express Edition?

Il Pazzo
05-11-2006, 19:34
No... non l'express edition... ho trovato come indicato da oregon... mentre le librerie statiche mi sembra di aver capito sono le .lib.... corretto?

Dove posso trovare una guida o una semplice spiegazione di differenza tra librerie statiche e dinamiche?

Per quanto riguarda la programmazione di DLL ( e anche .lib) utilizzo normalmente il linguaggio c++.. no? senza particolari istruzioni o cose vari (che so... li devo mettere gli include? etc etc) giusto?

MItaly
05-11-2006, 22:52
Originariamente inviato da Il Pazzo
No... non l'express edition... ho trovato come indicato da oregon... mentre le librerie statiche mi sembra di aver capito sono le .lib.... corretto?

S.


Dove posso trovare una guida o una semplice spiegazione di differenza tra librerie statiche e dinamiche?

Le librerie statiche vengono incorporate al momento del linking all'interno dell'eseguibile, mentre le librerie dinamiche rimangono files separati, di cui l'eseguibile richiama le procedure a runtime.


Per quanto riguarda la programmazione di DLL ( e anche .lib) utilizzo normalmente il linguaggio c++.. no?

Certo.


senza particolari istruzioni o cose vari (che so... li devo mettere gli include? etc etc) giusto?
Devi usare declspec(dllexport) per le funzioni che intendi esportare.

Il Pazzo
05-11-2006, 23:45
Originariamente inviato da MItaly

Devi usare declspec(dllexport) per le funzioni che intendi esportare.

Sei stato chiarissimo... ti ringrazio... non mi chiaro solo quest'ultimo punto... questo lo devo scrivere sempre nella dll.. giusto? (lo stesso vale per le .lib?)

poi... ho creato un progetto in VS C++... mi esce una cosa cos:


// a.cpp : definisce il punto di ingresso dell'applicazione DLL.
//

#include "stdafx.h"


#ifdef _MANAGED
#pragma managed(push, off)
#endif

BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
return TRUE;
}

#ifdef _MANAGED
#pragma managed(pop)
#endif


Dove devo scrivere le mie funzioni?

Mi basta scrivere ad esempio



void funzione (int h){
....
}


per avere una funzione che mi accetti un parametro?

grazie ancora

Loading