DLL

Replies: 26 Views: 6,797 Started: May 22, 2005, 9:38 AM
DLL · May 22, 2005, 9:38 AM
#8349
Evo konacno sam provalio kako radi dll u vc++ i kako moze da se procta iz vb-a.

Za vc++

U DLL sam stavio ovaj code:

#include <windows.h>

__declspec(dllexport) ?int DllMul(int a, int b)
{
return (a*b)+a;
}


a za vb cu staviti code kasnije ali je jako prosta fora.

a u glavni fajl koji cita taj dll stavio sam ovo:

#include <stdio.h>

int DllMul(int,int);

int main()
{
? ? ? ?printf("%i\n", DllMul(11,10));
? ? ? ?getchar();
return 0;
}


Probajte super radi samo nezaboravite da linkujete ?:D
Post #2 · May 22, 2005, 10:26 AM
#8351
E jel zna neko kako se prave class u vc++ - u
Post #3 · May 22, 2005, 11:07 AM
#8354
Offtopic Wizard wrote:
Ka?e? : "Klaso ! Stvori se ! I klasa se stvori":lol:
Post #4 · May 22, 2005, 12:51 PM · edited Oct 2, 2008, 4:58 PM
#8355
-------
Post #5 · May 22, 2005, 2:19 PM
#8359
a sta je ono sto ima public itd. i kako se ubacuju funkcije primetio sam i da za klase ima ono "::" te dve dvotacke sta to sluzi jel imas neki tutorijal za to :thumbsup:
Post #6 · May 22, 2005, 3:18 PM
#8364
Samo da kazem da se na pola foruma ne moze ostavljati komentar ako niste registrirani...a ovdje moze....pa da vam javim za ovo...a vi to preselite gdje god hocete...

Novi List 20.05.2005

Pozdrav
Post #7 · May 22, 2005, 3:53 PM · edited Oct 2, 2008, 4:57 PM
#8365
--------
Post #8 · May 23, 2005, 12:57 PM
#8406
Hvala DXM skapirao sam sve full je super. I provalio sam kako da se procitaju iz dll-a super. Nego provalio sam u nekim programima ovu oznaku "->" cemu to sluzi. :beer: :thumbsup:
Post #9 · May 23, 2005, 1:11 PM · edited Oct 2, 2008, 4:57 PM
#8411
-----------
Post #10 · May 23, 2005, 1:32 PM
#8423
super a reci mi jos sta je to "interface" u c++ i to sam video kao neke promenljive nesto ako znas?

Hvala puno za ostalo
Post #11 · May 23, 2005, 5:39 PM · edited Oct 2, 2008, 4:56 PM
#8456
--------
Post #12 · May 24, 2005, 6:00 AM
#8476
Hvala puno DXM mnogo si mi pomogao oko ovog sa clasam i ostalim hvala ti :thumbsup:
Post #13 · May 24, 2005, 11:49 AM
#8491
Ljudi eureka uspeo sam inicirati engine u cpp-u i dx-u iz c++-ovog dll-a sve super radi sad je ko irena sve u dll-u samo se pokrecu funkcije iz programa jako lako za rad sad cu ga dalje usavrsavati polako ali super je fora i to jos preko klasa ko u vb-u :thumbsup:

Jos jedna prednost mocice da se koristi taj dll u vb-u
Post #14 · May 24, 2005, 12:07 PM
#8493
:clap: :clap: :clap: :clap: :clap:
Post #15 · May 24, 2005, 12:18 PM
#8495
Mislim sta da ti kazem najbolji sam.... :lol: kolko sam uobrazen i digo sam nos splecu se za oblak :lol:
Post #16 · May 24, 2005, 1:06 PM
#8505
evala ti :thumbsup:
Post #17 · May 25, 2005, 5:47 PM
#8733
E DXM slusaj imam problem kad radim sa jednim cpp fajlom u vc++ projketu sve je ok ali kad ubacim jos jedan cpp fajl i stavim gore include ka istom h fajlu kao i onaj prvi cpp fajl prijavljuje gresku i nece da radi. Jel ima neko pravilo kod dok includea kad imas vise cpp-a i vise h fajlova :doh:
Post #18 · May 27, 2005, 6:45 PM · edited Oct 2, 2008, 4:55 PM
#8902
-----
Post #19 · May 28, 2005, 11:56 AM
#8957
Evo ti pa mi napravi da mogu iz oba cpp-a da includujem sve h fajlove
tj. glavno da inculudjem variables.h jer su tog lobalne variable. Taj projekat je DLL pa ga samo na f7 buildujes i nesme da ti prijavio gresku.

Miskecina 3D
Post #20 · May 29, 2005, 5:31 PM · edited Oct 2, 2008, 4:55 PM
#9030
------
Post #21 · May 30, 2005, 3:20 PM
#9089
Evo sledeceg probelma.

Ubacio sam u DLL fajl u jednu funkciju u clasi sledeci code

void _MISprites::CreateTexture(LPCTSTR FileName) //0xFFFF00FF
{

LPDIRECT3DTEXTURE9 Texture;
// if(D3DXCreateTextureFromFileEx(g_dxd3dDevice, "blah.jpg", D3DX_DEFAULT, D3DX_DEFAULT, 0,
// 0, D3DFMT_UNKNOWN, D3DPOOL_MANAGED, D3DX_FILTER_NONE, D3DX_FILTER_NONE, NULL, NULL, NULL, &Texture) != D3D_OK) // ==> Ak oucitavanje nije ok onda
if(D3DXCreateTextureFromFile(g_dxd3dDevice, FileName, &Texture) != D3D_OK)

{
MessageBox(NULL, FileName, "ERROR !!!", MB_OK + MB_ICONSTOP); // Ispisuje gresku u mesage boxu
return; // Gasi funkciju
}else{ // ==> A Ako je ispravno onda


} // <==
}




E sad to sam koristio i u jednom engineu i super je radilo ali to je sada u DLL fajlu. Ovu funkciju pozivam na sledeci nacin:

_MISprites miSprites;
miSprites.CreateTexture("exit.jpg");


Ovaj fajl se nalazi u direktorijumu gde je i projekta i sve vreme pali message box i vraca vrednost "D3DERR_INVALIDCALL" i nemam pojma zbog ega je to jel dobra putanja ili nesto ajde DXM znam da znas pomagaj. Inace dok se bilda program sve super radi bez greske samo ovo sere kad se program pokrene sve je super nacrta prozor sve strava ali nece to d apokrene :thumbsup:
Post #22 · May 30, 2005, 6:39 PM
#9108
Jesi probao korisiti cijelu putanju do te teksture?
Npr.

miSprites.CreateTexture("C:\\Igra\\exit.jpg");
Post #23 · May 30, 2005, 10:26 PM
#9121
Sredjeno je pokreto sam ovu funkciju pre iniciranja dx-a koji sam kreten :thumbsup:
Post #24 · Jun 3, 2005, 12:58 PM
#9325
DXM wrote:
Takodje postoje konstruktori i destruktori.
Na pr. ako deklarises neku varijablu
int x = 100;
znaci ti si je inicirao na 100. Medjutim sa klasama se to radi pomocu kontruktora.

:

class Pas
{
public:
? ?Pas(int x, int y); ? ?//konstruktor - mora da ima isto ime kao klasa
? ?~Pas(); ? ? ? ? ? ? ? ?//destruktor - isto kao klasa samo ~ ispred

? ?int tezina;
? ?int visina;
};

========
Pas :: Pas(int x, int y)
{
? ?tezina = x;
? ?visina = y;
};

Pas :: ~Pas()
{
? ?tezina = 0;
? ?visina = 0;
};



I kasnije ovako deklarises varijablu tipa Pas:
:

Pas Lesi(10, 50);



Znaci konstruktor se izvrsava pri deklaraciji varijable ili pri alokaciji ako se dinamicki alocira, a destruktor se izvrsava sa gasenjem programa (ili brisanjem iz memorije ako se dinam. aloc.)


Ok sad ti meni reci ovi argumenti u konstruktoru da li su obavezni ili moze da se definise unutar funkcije da se da recimo texina = 10; i kad se ovaj destruktor pokrece i kako se kasnije koriste te variable unapred definisane. Daj prime rkoriscenja ?:thumbsup:

I ako te nemrzi da mi objasnis citanjei pisanje iz fajla :thumbsup:

tnx u napred
Post #25 · Jun 3, 2005, 4:33 PM
#9334
Konstruktor moze biti bez parametara.
Isto tako,mozes imati i nekoliko preopterecenih konstruktora.
Npr. jedan bez parametara,jedan s dva parametra,jedan s tri parametra..itd.


Npr:

class Pas{
public:

Pas();
Pas(int tezina_kg);

int tezina;

};

Pas::Pas(){
//Tijelo konstruktora,ovdje mozes recimo postaviti varijable na 0:
tezina=0;
}

Pas::Pas(int tezina_kg){
tezina=tezina_kg;
}


Naravno,uopce ne moras korisiti konstruktor,mozes i iz funkcije postaviti varijable iako se to ne preporucava.

Sto se tice destruktora,destruktor se automatski pokrece za lokalne varijable na kraju bloka u kojem su deklarirane,za globalne na kraju programa,a za dinamicki alocirane prilikom poziva funckije delete.
Destruktor sluzi za oslobadjanje resursa,najcesce za oslobadjanje dinamicki alocirane memorije.

Npr:

//ovo je neka funckcija:
void test(){
//Poziv konstruktora bez parametara:
Pas Lesi;

}
//Destruktor ce se pozvati ovdje, na izlasku iz funckije,tj.nakon izvrsavanja funckije


Kako koristiti varijable definirane u klasi?
Evo primjera:

npr:

class Pas{
public:

Pas(){
tezina=0;
}

int tezina;
};

//neka funckija:
void test(){
Pas Lesi;
Lesi.tezina=30;
}


Naravno,tako ih mozes koristiti samo ako ih definiras kao javne,public.
Ako stavis private,ili ako ne stavis nista prije deklaracije,mozes ih koristiti samo interno u klasi..Npr:



class Pas{
int tezina;

public:
Pas(){
tezina=0;
}

//Koristimo varijablu unutar same klase:
void postavi_tezinu(int value){
tezina=value;
}

};

//Varijabla se ne moze sada korisiti van klase:
void test(){
Pas Lesi;

Lesi.tezina=30;//ERROR:Ne moze se pozvati ?privatni clan klase..

}


Hope this helps!
Post #26 · Jun 3, 2005, 6:11 PM · edited Oct 2, 2008, 4:53 PM
#9345
-------
Post #27 · Jun 4, 2005, 11:09 AM
#9387
Hvala puno moci puno ste pomogli :thumbsup:

Sign in to reply

Replies are available for existing members only! For now 😅

Sign in