[ 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. |
[ kiccra @ 19.10.2004. 10:50 ] @
[ 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 Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|