Cygwin なんでも掲示板

一覧最新記事過去一覧 | 検索FAQアンテナHOME
(新規投稿・発言はできません)


スレッド

└◇873:
Re[2]:cygwinのライブラリを利用するVCアプリ [森] 12/27 09:57

 └◇886:Re[3]:cygwinのライブラリを利用するVCアプリ [S.Taka] 01/02


873● Re[2]:cygwinのライブラリを利用するVCアプリ[ 森 ] 2002 12/27 09:57
http://www.mars.dti.ne.jp/~sohda/cygwin/java.html
にjniのサンプルがあります。

Widows用のjvmが何でコンパイルされているのか知りませんが、cygwin外のメインからcygwinで作ったdllを呼んでいますので、この真似をすればよいと思う。
スレッド一覧


886● Re[3]:cygwinのライブラリを利用するVCアプリ[ S.Taka ] 2003 01/02 00:35
森さん、情報ありがとうございます。

なるほど、確かに早田さんのJNIのサンプルで作るDLLは
cygwin1.dllを使用していますね。サンプルも動く
ことを確認できました。

違いを考えてみると、私の試したやり方は、DLL
の事前ロード(こう言い方でよいのかしら?)で、
おそらくJavaのVMはDLLをLoadLibrary APIを使って
遅延ロードする方法だと思いましたので、次のような
プログラムを作って実験してみましたところうまくいき
ました。(なお、testdll.dllはgccで作ったDLLです)

---------------------------------------------
#include <stdio.h>
#include <windows.h>

int main()
{
HMODULE hLibrary;
void (*pfnTestFunc)(void);

hLibrary = LoadLibrary("testdll.dll");

pfnTestFunc = (void (*)(void))GetProcAddress(hLibrary, "testfunc");
pfnTestFunc();

return 0;
}
---------------------------------------------

なぜ、この方法ならばうまくいくのかが分かっていませんが、
592で書いたような変なやり方をしなくても良いことが分かって
よかったです。ありがとうございました。
スレッド一覧

早田のホームページへ
CGIROOM