Hej Troels!
Tak for dit svar. Af hensyn til, at jeg skal bruge JNI bruger jeg den lange
kommandolinie. I den nedenstående eksempel har jeg lavet et C-program
(HelloWorldImp.c) der skal inarbejdes i et Java-program (HelloWorld.java)
via en DLL-fil (hello.dll).
1) javac HelloWorld.java
2) javah -jni HelloWorld
3)
cl -Ic:\progra~1\jdk1.3\include -Ic:\progra~1\jdk1.3\include\win32 -Ic:\prog
ra~1\bc5\include -Ic:\progra~1\micros~3\vc98\lib -LD %1imp.c -Fe%1.dll
Mit problem er nu, at på det stadie, jeg nu er kommet til skal C-programmet
lave kald i en lib-fil, og jeg forstår ikke at inludere den rigtigt.
Jeg ser frem til at høre fra dig igen!
Med venlig hilsen
Jakob Bro Nielsen
AAU
Troels Thomsen <tpilt@worldonline.dk> skrev i en
nyhedsmeddelelse:rOUU5.452$S3.32673@news010.worldonline.dk...
> Sidst jeg skulle bruge en lib fil tilføjede jeg den bare til projektet, så
> blev den kompileret med.
>
> Bruger du workspacet eller bruger du en laaaaang kommandolinie?
>
> Jakob Bro Nielsen <fisker@kom.auc.dk> wrote in message
> news:4xTU5.12155$zs.332334@twister.sunsite.auc.dk...
> > Hej Gruppe!
> >
> > Flere af jer vil nok ligge mærke til, at jeg har været inde på dette
emne
> > før. Mine tidligere spørgsmål har jeg fået nogle svar på, og nu håber
jeg
> > virkelig, at der er en eller flere der gider at svare på flere
> >
> > Min opgave består i at læse/skrive til og fra et IO-kort via nogle til
> > kortet medleverede C-kommandoer. Det medleverede består af:
> > - can841.h (prototyper af funktionerne i can841l.lib)
> > - can841l.lib (funktioner til at tilgå IO-kortet med)
> >
> > Når jeg skriver programmer i C er der ingen problemer. Jeg benytter
> Borland
> > C++ 5.0 og det går fint med at kompilere og linke filerne til en brugbar
> > .exe-fil.
> >
> > Næste skridt består så i at gøre koden tilgængelig for Java vha. Java
> Native
> > Interface (JNI). Det har jeg også tidligere haft til at fungere. Jeg har
> > fulgt tutorialen på Suns hjemmeside og bruger linkeren, der følger med
MS
> > Visual C++ 6.0 (cl.exe) til at lave en dll-fil med. Fremgangsmåden med
at
> > lave en Java-fil med implementeret C-kode indbefatter ikke nogen direkte
> > kompilering af C-filen men kun af Java-filen (med javac).
> >
> > Det er i forbindelse med linkningen mit problem opstår. Jeg tror, at det
> er
> > fordi, at jeg ikke forstår at benytte cl rigtigt. Jeg er vel på en eller
> > anden måde nødt til at gøre den opmærksom på, at også can841l.lib skal
> > inkluderes i dll-filen, som Java laver et kald ned i - eller hvad?
> >
> > Er der nogen der har ideer, kommentarer eller bare har arbejdet med
noget
> > lignende hører jeg meget gerne fra jer!
> >
> > Med venlig hilsen
> >
> > Jakob Bro
> > AAU
> > (PS se min største fangst på:
www.kom.auc.dk/~fisker )
> >
> > ----------------------------------------
> > Jakob Bro Nielsen
> > 9200 Aalborg
> >
> > fisker@kom.auc.dk
> >
> >
> >
>
>
>
>