[ kiccra @ 19.10.2004. 10:50 ] @
Kako da pozovem aplikaciju pisanu u c++ iz aplikacije pisane u fortranu posredstvom DLL-a?

Primer ili linkovi dobrodosli.
[ yooyo @ 19.10.2004. 11:27 ] @
Napravi u MSVC-u prazan Win32 DLL projekat.
U CPP-u napisi funkciju koji zelis da exportujes kao npr:
Code:

extern "C" __declspec(dllexport) int NekaFunkcija(int a, int b)
{
 return a+b;
}


Obrati paznju na extern "C". To znaci da se forsira komajleru da generise _cdecl nacin pozivanja funkcije. Moguce je da to zasmeta fortranu pa ono "C" promeni u _stdcall ili _pascal ili nesto trece. Samo vodi racuna da ce ime funkcije biti modifikovano (kompajler ce dodati _ pre i @nesto posle imena) ako poziv funkcije nije _cdecl (tj. "C").

Kada prevedes projekat, dobices DLL u kome se nalazi exportovana tvoja funkcija.
Mozes je videti koriscenjem programa Dependency viewer (Depends.exe) koji dolazi uz MSVC.

E sada dolazi na red Fortran:
Fortran generalno ne podrzava rad sa DLL-ovima. Zato su proizvodjaci svaki na svoj nacin napravili resenje za ucitavanje DLL-a. U zavisnosti koji fortran kompajler koristis potrazi na googlu kako se ucitava DLL. Ima dosta primera ( [url]http://math.cl.uh.edu/~thompsonla/5537/call_c_fortran_splus.html[/url] )

yooyo
[ kiccra @ 20.10.2004. 13:36 ] @
OK. A na koji nacin mogu da ostvarim da dva *.exe fajla komuniciraju posredstvom dll-a. Da recimo, pokrenem *.exe pisan u fortranu u da mi se u njemu stampa poruka iz *.exe pisanog u C++? Inace koristim VS6 i DVF90.

Hvala u napred.
[ Dragi Tata @ 20.10.2004. 14:26 ] @
Zanima te interpropess comunication (IPC)? Pogledaj recimo:

http://www.codeproject.com/threads/ipcworkshop.asp
[ kiccra @ 03.11.2004. 10:13 ] @
Resenje sam nasao na adresi:

http://h18009.www1.hp.com/fortran/examples/vc-example1.html

Hvala svima koji su mi pomogli.
kiccra