2002年07月24日(Wed) [長年日記]
_ JNI
Windows上で開発してるJavaプログラムでJNIを使う必要が出てきた。
で,先月のSoftware Designの記事に「JNI経由で茶筅を使う」ってな話がチラっとあったんで参考にしてみようとしたんだが,
javahコマンドの説明で存在しないオプションを堂々と書いてる
のに気づいてその後を読む気が失せる (--;)
結局,を拾い読みしつつ,Webでも情報を漁りながら作業ちぅ。
以下,今の俺には参考になりそうなサイト:
これまで全く使ったことがないんで,初歩の初歩からやらんと分からんことだらけ ^^;
[追記]
引数の型も数もjni.hで宣言されてる通りに渡してるのに,
D:\anywhere>cl -ID:\jdk1.3.1_04\include -ID:\jdk1.3.1_04\include\win32 -LD -Fe
FugaHoge.dll FugaHoge.cpp /link kernel32.lib
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8804 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
FugaHoge.cpp
FugaHoge.cpp(14) : error C2660: 'GetStringLength' : 関数が不正な 2 個の実引数を
ともなって呼び出されました。
FugaHoge.cpp(18) : error C2660: 'GetStringChars' : 関数が不正な 3 個の実引数をと
もなって呼び出されました。
FugaHoge.cpp(26) : error C2660: 'ReleaseStringChars' : 関数が不正な 3 個の実引数
をともなって呼び出されました。
とか言われる。鬱だ… (--;)
「コマンドラインからコンパイルなんぞしとらずに,Visual Studio使え」っつーことか?!
[追記]
Visual Studio使ってみても状況は変わらず (--;)
で,も一度jni.hを見直してみたら…同ファイルの後半に,引数が一つ少ないインライン関数バージョンが定義されているという罠 (--;;;
こっちに合わせたら,サックリ動きやがった。
ここ1年はほぼJavaとPHPのみで,しばらくC/C++から離れてたらすっかり勘が鈍ってるらしい。
[追記]
あ,いや,jni.h自体はSun J2SE SDKの一部ね ^^; > 菅原さん
関数プロトタイプが2種類(っつか,一方はインライン関数だが)あるのに気づかなかったのは,単に俺の不注意 (大汗
んだけど,書籍にもJDKのドキュメントにもそんな話はなかったよなぁ…って,これまた俺の見落としだったら嫌すぎ (爆
_ JPEG騒動
ウチの素材集は,配布データにJPEG使ってないんで大丈夫 :-) > 菅原さん
んがしかし,それ以前にGIFのデータをなんとかせんと…
新しく作ったやつはPNGにしてるんだが,既存データのPNGへのコンバート&配布ページの書き換えをやってる暇がない (涙
_ 機動戦士ガンダム THE ORIGIN (2)
むぅ,もう2巻が出るっつーこと自体,全く知らんかった ^^; > かみやまさん
明日買おっと♪
ちなむと,1巻を読んでの正直な感想は「絵コンテ読んでるみたい」でした ^^; > 啓子さん今度牛 近藤氏のって見覚えがないなぁ…今度探してみよう。
_ お楽しみの前に
…これから別件のドキュメント書き。
critical pathを糞詰まり状態にさせちまってるので,さっさと仕上げねばならんのだが…作文全般,苦手なんだよな < 俺 (--;)
そういえば、素材集は大丈夫?<br>/.やZDでJPEGサブマリン特許が騒ぎになっているけど
機動戦士ガンダム THE ORIGIN第2巻買ったぞっと。
>DION<br>どうやら、Zeusステステ?で復旧しつつあるらしいです。<br><br>>JPEG特許<br>どうやら、DCTした後の圧縮を算術圧縮するオプションに関連しているようなので、ハフマンなら桶らしいです。<br><br>>JNI<br>なんか、M$らしいなぁ(^^;) まあ、M$関連は一種のVoodooエンジニアリングの世界かも。
うーむ、安彦ガンダムはどうも好きになれないのよねぇ>2巻<br>あたしは、近藤氏の「機動戦士ガンダム0079」の方がいいっす。(こちらは8巻まで出てますよん。)
私もはまったJNIの罠。<br>JNIの仕様書では、関数の説明の部分でなく、設計概要の章に<br>Cで書くときはこれ、C++で書くときはこれというインターフェース<br>を用意していると書いてあるんですよね。<br># もっとはやく教えろって?^^;<br>よほど余裕がないかぎり言語設計の部分に目を通すなんてこと<br>しないよなぁ。