スポンサーリンク
JNAを使用し、JavaからWin32APIのメッセージボックスを表示する
import com.sun.jna.Native; import com.sun.jna.win32.StdCallLibrary; public class Hello { public interface User32 extends StdCallLibrary { User32 INSTANCE = (User32) Native.loadLibrary("user32", User32.class); int MessageBoxA(int hwnd, byte[] text, byte[] caption, int type); //① int MessageBoxA(int hwnd, String text, String caption, int type); //② } public static void main(String[] args) { User32 user32 = User32.INSTANCE; try{ user32.MessageBoxA(0, "こんにちは".getBytes(), "◎★♪".getBytes(), 0); user32.MessageBoxA(0, "Hello World", "MessageBox", 0); } catch( Exception e ){ } } }
※全角文字を表示するときは①、半角英数の時は②を使用する。さもないと文字化けする。
前準備
.;C:\dev\JNA\jna.jar;C:\dev\JNA\jna-platform.jar;
のように、jna.jar,jna-platform.jarをCLASSPATHに追加する。
※コンパイル時・実行時に -cpオプションで追加しただけでは不十分な場合がある
コンパイル
javac Hello.java
実行
java Hello