WindowsXPのコマンドプロンプトで使えるコマンドをちょっと追加。
- 端末関連にtitle,colorを追加。
- ディレクトリ関連を追加。pushdとかを入れようと思ったら、分類ごと無かったので新設。
- システム情報関連にwinver,msinfo32.exeを追加。msinfo32の方は基本的にパスが通ってないので、コマンドに入れるかどうか微妙。というか、winverもダイアログを開くから DOSコマンドからは外れるよな(汗)
WindowsXPのコマンドプロンプトで使えるコマンドをちょっと追加。
kshのメモを書いておこうと思ったら、やっぱりsh(ボーンシェル)のことをメモしておかないとなー。
というわけで、シェルスクリプトのメモを作成。
併せて、コマンドを複数実行する方法についてもちょっと追記。
ついでにコマンドのメモもちょっと追加。
JNIでSJISの文字列を扱う関数を作ってみた。
実質は「new String(バイト配列, "MS932")」とか「str.getBytes("MS932")」をやっているだけだけど。
C/C++側でこれをやって、charの配列にして返すことに意味がある。
Java側でこれをやってSJISのバイト配列を渡すようにしても、C/C++側でけっきょくバイト配列からcharの配列を取得する必要があるから。それなら全部C/C++側でやっちゃいたいよねー。
ところで この関数では、関数内でしか使わないワークとしてStringやbyte[]のオブジェクトを作り出しているが、少なくともJavaへ制御が戻らないとGCでクリアされないよなー。(そもそもJNI関数の中でGCが動くことがあるのかどうか不明だが)
つまり何度も呼び出していると無駄なオブジェクトがどんどん溜まっていくわけだ。
使わなくなったことを示すJNI関数とかがあればいいんだけどなー。
あと、char配列はmallocを使ってfreeで解放するというベタな方法を採っているが、C/C++なので、解放し忘れって当然考えられるわな。JNIのRelease系関数って、やっぱり同じなのかなぁ。もしJavaに戻る際に自動的に解放するような機構をとっているなら、それと同じやり方にしたいよなー。
JNIでの例外処理を補足。
「catch(Exception e)」を実現するだけでも、クラスを取得したり色々しなければいけないので面倒だな~。
まぁ、C/C++の中でわざわざJavaと同じようなそんな処理を行おうとするのが間違いかな。
基本的にEclipse2のときから変わっていないのでほとんどコピペ(笑)
しかし若干手順が楽になっている部分もある。
ところでjadのダウンロードページを見たら、Eclipse3.2用というのがあった…。
比較的最近Eclipse3を入れたつもりだったのが3.1なのに、いつの間に3.2なんてものが出ていたんだ(爆)