JAVAから呼び出されるDLLを記述するVC実装方法
VC を使用して JAVA 呼び出し用の DLL を作成する方法
}(2) Java ファイルをコンパイルし、コンパイルしてヘッダー ファイルを生成します (vc 用) javac GB2PY.java //コンパイルしてクラスを生成します(3) 現在のフォルダーに com/bw/gb2py フォルダーを作成します、 GB2PY .class をフォルダーに追加し、現在のフォルダーに戻り、javah コマンドを呼び出してヘッダー ファイルを生成します。 javah com.bw.gb2py.GB2PY //ヘッダー ファイルを生成します。ファイル名は com_bw_gb2py_GB2PY.h です。ヘッダー ファイルの内容は変更できません。変更しないと、生成された DLL は使用できません。 (4) Win32 DLL を新規作成します。 VC に GB2PY という名前のプロジェクトを作成し、com_bw_gb2py_GB2PY.h をプロジェクト ディレクトリにコピーし、プロジェクトに追加します。次に、%JAVA_HOME%/include/jni.h および %JAVA_HOME%/include/win32/jni_md.h をプロジェクト ディレクトリにコピーし、プロジェクトに追加します。 (5) com_bw_gb2py_GB2PY.h で宣言されたメソッド Java_com_bw_gb2py_GB2PY_GetPY を実装します。 c での Java 文字列と文字の変換に注意してください。 Java の文字列は Unicode (2 バイト) でエンコードされますが、char は 1 バイトです。 int (*GetPY)(char* szGBString,PY &oPY);JNIEXPORT jstring JNICALL Java_com_bw_gb2py_GB2PY_GetPY
(JNIEnv * env, jclass, jstring name){static HMODULE hModle = LoadLibrary("PYconvert.dll"); //サードパーティ DLL
GetPY = (LPFUN)GetProcAddress(hModle,"GBToPY");int len;char charName[128];
char charPY[512];
len = env->GetStringLength(name) * 2 1; //全角長を半角長に変換し、1を加算するとターミネータが追加されます
memset(charName, 0, len);
const wchar_t * w_buffer = env->GetStringChars(name, 0);
int wlen = wcslen(w_buffer);
len = WideCharToMultiByte(CP_ACP, 0, w_buffer, wcslen(w_buffer) 1, charName, len, NULL, NULL);
env->ReleaseStringChars(name, w_buffer); //上記のコードは、java 文字列 name の内容を char 配列 charName にコピーします... //一部の関数コードを省略し、サードパーティ DLL を呼び出して中国語の文字を変換します関数はピンインで、charPY 配列に格納されます。 int slen = strlen(charPY);
jchar * バッファ = 新しい jchar[slen];
len = MultiByteTowideChar(CP_ACP, 0, charPY, strlen(charPY), バッファ, slen);
if (レン > 0 & レン
buffer[len] = 0; //上記のコードはchar型文字列をjchar型文字列に変換します jstring js = env->NewString(buffer, len);
delete []buffer;return js;}(6) Java で呼び出すことができる dll ファイルをコンパイルして生成します (2 番目のステップで生成されたクラスを使用する必要があります)。 :)
VC で作成した EXE ファイルの DLL ファイルを作成し、この EXE から DLL を呼び出す方法
dll の書き方のことですか? 、または作成した DLL を呼び出すにはどうすればよいですか?
dll:vc 6.0 の書き方。新しいプロジェクトを作成するときは、通常、次のいずれかを選択します。
MFC AppWizard[dll]は、MFC フレームワークのダイナミック リンク ライブラリを使用できます
Win32 ダイナミックリンク ライブラリ window32 ビット標準ダイナミック ライブラリ
あとは必要なフレームワークを選択して完了です 基本的なdllはこんな感じです。
vs2003 以降 (vs2010 は使用していないので説明しません) を使用している場合は、新しい
を作成します。次の 2 つのタイプはプロジェクトでよく使用されます:
MFC->MFC DL
Win32->いずれか->ポップアップ ダイアログ ボックスで Dll オプションを選択します
その他のオプションはニーズに応じて異なります。それが完了し、基本的な DLL の準備が整います。
作成した DLL を呼び出します: LoadLibrary("xxx.dll");
を呼び出す必要がある場所で使用します。xxx.dll はあなたが書いた DLL であり、xxx.dll に
を書いた場合インターフェイスの場合、次のメソッドを使用して dll 内のメソッドを呼び出すことができます:
1. DLL のインターフェイス ヘッダー ファイルを exe プロジェクトに含めます。たとえば、インターフェイス関数は void FunName(int a);
です。2. typedef void(*Func)(int); //インターフェイスを定義します
3. 必要な場合に使用します:
......................................
HMOUDLE hMyDll = LoadLibrary("xxx.dll");
if (hMyDll != NULL)
{
Func *pDllFun=(Func *)::GetProcAddress(hMyDll,"FunName");//FunName は Dll のインターフェイス関数です
if (pDllFun != NULL)
{
pDllFun(1); //Dllの関数を呼び出します
}
}
4. DLL が不要になったらアンインストールします。 FreeLibrary(hMyDll);
///////////////////////////////////////////// //// ///////
DLL は、exe が存在するディレクトリに生成されましたか?
以上がJAVAから呼び出されるDLLを記述するVC実装方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









記事では、誤った編集からWindowsレジストリ、予防策、バックアップ方法、潜在的な問題の編集について説明します。主な問題:システムの不安定性と不適切な変化によるデータ損失のリスク。

Windowsの設定でのドライブヘルス警告はどういう意味ですか?ディスク警告を受け取ったときに何をすべきですか?このPHP.CNチュートリアルを読んで、この状況に対処するための段階的な指示を取得してください。

記事では、システムの健康のためのWindowsサービスの管理、開始、停止、サービスの再起動、安定性のためのベストプラクティスなどについて説明します。

この記事では、システム設定を管理するためにWindowsでグループポリシーエディター(gpedit.msc)を使用する方法、一般的な構成とトラブルシューティング方法を強調する方法について説明します。 Gpedit.mscはWindows Home Editionsでは利用できないことに注意してください。

「Windowsメタデータとインターネットサービス(WMIS)への接続が確立できなかった」が表示される場合があります。イベントビューアのエラー。 PHP.CNからのこの投稿では、Windowsメタデータとインターネットサービスの問題を削除する方法を紹介します。

記事では、リターンやバルクの変更など、ウィンドウ上のファイルタイプのデフォルトアプリの変更について説明します。主な問題:組み込みのバルク変更オプションはありません。

MsconfigがWindowsの選択的な起動に戻っているという問題について質問されていますか?必要な場合は、通常のスタートアップに切り替える方法は?このphp.cn投稿で説明されている方法を試して、あなたに合ったものを見つけてください。

KB5035942更新問題 - クラッシュシステムは一般にユーザーに発生します。 Imburitedの人々は、クラッシュするシステム、インストール、健全な問題など、一種のトラブルから抜け出す方法を見つけることを望んでいます。これらの状況をターゲットにして、この投稿はphp.cn wilが発行しました
