Oppure

Loading
04/01/09 15:53
lorenzo
Buon anno a tutti(anche se un po in ritardo)
sapreste dirmi come posso creare una dll in c++
(usando VC++ 6.0) con delle classi al suo interno?

Conosco il modo per creare dll con le funzioni normali, ma con le classi non sono ancora riuscito a trovare niente(neanche su google).

Qualcuno saprebbe aiutarmi?
aaa
05/01/09 15:32
Overflow
con dll intendi la libreria?
definisci la classe nell'header file che devi includere nei progetti, insieme alle funzioni che esporti.
aaa
05/01/09 16:54
lorenzo
Cosa vuoi dire con definire la classe nel .h?

Io quando devo esportare una funzione uso
__declspec( dllexport )void funzione();

nel file .h interno.

In quello che includo nei progetti metto il normale prototipo.

In pratica ho 3 file per una dll con una funzione normale:

test.cpp -> con il corpo della funzione
test.h -> con il prototipo della funzione(questo file lo includo nei progetti)
internal.h -> con la __declspec

Usando una classe, come dovrei impostare i tre file?
aaa
06/01/09 14:10
Overflow
allora nel file test.h dichiari la classe.
#ifndef __MYCLASS__
#define __MYCLASS__

class __declspec( dllexport ) myClass
{
public:
	myClass();
	~myClass();
	int sum(int a,int b);
};

#endif

nel file test.cpp implementi i metodi della classe ecc...
Poi crea un file .h sarà quello che includerai nei progetti e scrivi:
finclusion.h
class __declspec( dllimport) myClass
{
public:
	myClass();
	~myClass();
	int va;
	int sum(int a,int b);
	void save(int c);
};

ora in un progetto: main.cpp
#include "finclusion.h" //il file dove hai dichiarato la classe

#pragma comment(lib,"dlldiprima.dll")

int main()
{
	myClass a; //instanzi la classe
	int c = a.sum(1,2); //chiami un metodo della classe
	return 0;
}

aaa
06/01/09 15:15
lorenzo
funziona, grazie!!!!!!!!!
aaa