マルチOSな3DゲームをJavaで作ろうと思い立ったところ、c++でDirect3DとOpenGLに対応した
、物理演算も可能なゲームエンジンライブラリを発見しました。とりあえずWindowsでdllの動作を確認しようとVC++でコンパイルしてはみたものの、全く連携方法がわかりません。Jnaを使ってdllを呼び出す方法も考えたのですが、そもそもVC++でコンパイルするとextern "C"なしではJnaから呼び出せなくなるようです(修飾名を使って呼び出せば出来るのかもしれませんが、マルチOSの主旨に反します)。そこでコマンドを使ってコンパイル前のソースの全ての__declspec(dllexport)のある行頭にextern "C"を付けてみたのですが、無論templateやoverrideでエラーだらけになるわけで……
どうしたらそのc++ライブラリをJavaから呼び出せるのでしょうか?
追記
ライブラリ名はUrho3Dです。
BridJでの手動コードでテストdllの読み込みが行えたため、BridJのJavaコードを自動生成するプログラムを書きながらもっと楽な手段の回答を待つことにします。
回答2件
あなたの回答
tips
プレビュー