Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

C Dinamic Library + VB

[es] :: C/C++ programiranje :: C Dinamic Library + VB

[ Pregleda: 2681 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

icobh
Igor Pejašinović
Network Admin
Navigo SC d.o.o.
Banja Luka

Član broj: 18738
Poruke: 1319
*.inecco.net.

Sajt: www.nsc.ba


+4 Profil

icon C Dinamic Library + VB11.10.2006. u 22:00 - pre 213 meseci
Mučim se već 2 sata, ne mogu da skontam gdje griješim. Naime, napisao sam jedan DLL u C-u i pozivam f-ju iz te biblioteke iz VB-a. Evo kako izgleda sporna f-ja:

Code:
DLLIMPORT void Save (long pos, int brl){
          
FILE *T;

T=fopen("Greska.txt","w");

fprintf(T,"%ld %d",pos,brl);

fclose(T);      
}


A ovako deklarišem i pozovem iz VB Programa:

Code:
Private Declare Function Save Lib "test.dll" (ByVal a As Long, ByVal b As Integer) As Variant

Private Sub Command1_Click()
    Save 48, 49
End Sub 


Ali kad odem u ovaj fajl (Greska.txt) tamo umjesto 48 49 imam 1242340 48! Ili nekad zna biti 1242350 1242354! Ovo mi mnogo liči na adrese ali odakle ovo 48 kao drugi broj, kada sam mu ja proslijedio kao prvi? Da li sam negdje pogriješio ili šta već, ovo počinje da me nervira!


[Ovu poruku je menjao icobh dana 12.10.2006. u 10:54 GMT+1]
I ♥ ♀

Ovaj post je zlata vrijedan!
 
Odgovor na temu

Buffy
Stanko Culaja
Sipovo, BiH

Član broj: 45310
Poruke: 312
*.teol.net.



Profil

icon Re: C Dinamic Library + VB12.10.2006. u 12:08 - pre 213 meseci
Vjerovatno se radi o drugacijem tipu poziva funkcije.
Kao sto znas ima vise tipova poziva: __fastcall, __stdcall, __pascal ...
Pokusaj saznati koju vrstu poziva po defaultu koristi visual basic pa onda ispred definicije funkcije stavi
__fastcall, __stdcall ili neki drugi.
npr.
Code:

__fastcall DLLIMPORT void Save (long pos, int brl)

to je prvo sto mi pada na pamet.
Mozda sam napravio gresku u kodu.
pozdrav!

 
Odgovor na temu

icobh
Igor Pejašinović
Network Admin
Navigo SC d.o.o.
Banja Luka

Član broj: 18738
Poruke: 1319
*.inecco.net.

Sajt: www.nsc.ba


+4 Profil

icon Re: C Dinamic Library + VB12.10.2006. u 13:47 - pre 213 meseci
Isprobao sam sve mogućnosti, vidio sam da fastcall mijenja one vrijednosti ali ne u željene! Izgleda da je problem u mom GCC kompajleru!

P.S. Otklonio sam "kvar"! Kvaka je u GCC-u, jer je to compiler prvenstveno za unixoide, stoga koristi drugačiji poziv funkcija, tj. __cdecl.

Rješenje sa našao ovdje: http://www.mingw.org/MinGWiki/...747374cbb2c70240ba7acf65a1bc5c

To je baš ono što mi je trebalo

[Ovu poruku je menjao icobh dana 12.10.2006. u 20:37 GMT+1]
I ♥ ♀

Ovaj post je zlata vrijedan!
 
Odgovor na temu

[es] :: C/C++ programiranje :: C Dinamic Library + VB

[ Pregleda: 2681 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.