ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

C言語とC++言語コミュのC++でJavaライブラリを使う

  • mixiチェック
  • このエントリーをはてなブックマークに追加
 GCCがJavaに対応したそうで、CNI規格に準拠したGCJいうライブリが追加されました。GCJはC++で書かれておりGCCの"include/gcj"と"include/java","include/javax"というフォルダにヘッダーとして入っており、見る事が出来ます。

 C++からJava用クラスライブラリが使えるらしぃ。swingからリフレクションまでるGCJについて語りませう。

参考:"http://www.asahi-net.or.jp/~wg5k-ickw/html/online/gcj-3.2.1/gcj-ja_12.html"

コメント(7)

>  GCCがJavaに対応したそうで

昔からあるGCJとは違うの?
>昔からあるGCJとは違うの?
さぁ?最近知ったので少し古いかもしれませんね。私の持っていた昔のGCCには入っていませんでしたが。

>ガベコレはどぉ〜なるの?
BoehmGCというライブラリで実現されているようです。
参考:
BoehmGCを使おう。
http://studiokingyo.fc2web.com/dxlib/tutorial/BoehmGC/index.html

>C++からJavaライブラリを触る必要ってそんなにある?
>昔ながらのJNI(Javaからネイティブコードにアクセス)のほうが楽なような気がするけど。
やっぱり、C++特有のテンプレート+演算子のオーバーロードによる汎用プログラミングやインライン展開による高速化(セッター・ゲッターの呼び出しコストがほぼゼロに)、プラットフォームに特化した出来る点でしょう。それから、C++コンパイラ付属の総合的(UIからスレッドなど)なマルチプラットフォームクラスライブラリが他にあまり無いという点で便利だと思います。
ソケットを介してお話しする、というので良ければCORBA的なものもありますね。

http://www.zeroc.com/
こちらでリリースされてるICEはなかなか優れもので、IDLさえ書けば、C++, Java, Python, PHP, C#, Ruby, VBあたりから相互にオブジェクトにアクセスできます。

言語間ブリッジとしてよく使ったりしますが、やっぱりこちらも用途は限られますねぇ。
Javaなんて難しいことをしてますね。
折角なのでC++でウィンドウを出すサンプルを書いてみました。残念ながら、MinGWだとコンパイルは難しそうです。
#include<gcj/cni.h>

#include<javax/swing/JFrame.h>
#include<javax/swing/JButton.h>
int main(int,char*[])
{
using javax::swing::JFrame;
using javax::swing::JButton;

JvCreateJavaVM(NULL);
JvAttachCurrentThread(NULL, NULL);
{
JFrame *form = new JFrame(JvNewStringLatin1("Caption"));
JButton *ok = new JButton(JvNewStringLatin1("OK"));

form->getContentPane()->add(ok);
form->setDefaultCloseOperation(JFrame::EXIT_ON_CLOSE);
form->pack();
form->setVisible(true);
}
JvDetachCurrentThread();

return 0;
}

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

C言語とC++言語 更新情報

C言語とC++言語のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング