/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
Implementering af hardwarenær c-kode i Jav~
Fra : Jakob Bro Nielsen


Dato : 28-11-00 20:17

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




 
 
Troels Thomsen (28-11-2000)
Kommentar
Fra : Troels Thomsen


Dato : 28-11-00 21:45

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
>
>
>





Jakob Bro Nielsen (29-11-2000)
Kommentar
Fra : Jakob Bro Nielsen


Dato : 29-11-00 10:35

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
> >
> >
> >
>
>
>
>



Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408847
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste