Java call native methods in a DLL without JNI (Call PageSetupDlg function in comdlg32.dll)
摘要: 最近由于項(xiàng)目的要求, 需要在SWT程序中打印自定義的表格, 并能設(shè)置頁面和頁面空白的大小。
再查看了SWT的文檔后發(fā)現(xiàn), SWT只封裝了PrintDLG打印對(duì)話框,可以設(shè)置頁面的大小,但不能設(shè)置頁面空白的大小。
由于本人以前是VB程序員,本能的就想到了comdlg32.dll 中的PageSetupDlg對(duì)話框。 如果可以直接掉用這個(gè)對(duì)話框, 省掉了多少麻煩事啊。
但是用JNI調(diào)用dll中的函數(shù)也很麻煩,還不如自己做一個(gè)頁面設(shè)置對(duì)話框來的方便。 于是查了一下sourceforge, 發(fā)現(xiàn)了JNative這個(gè)類庫。在稍稍看了JNative的源碼之后覺得這個(gè)庫寫的真是不錯(cuò)。 封裝了許多Win32 api中的類型(HWND,DWORD, LPARAM 等等)方便使用, 并且直接wrapper了不少dll (比如 Gdi32, Kernel32, Shell32, User32等dll),其中居然也包括ComDlg32 (可惜只封裝了ChooseColor 顏色選擇對(duì)話框)。
不過不要緊, 既然有了ChooseColor的 閱讀全文
再查看了SWT的文檔后發(fā)現(xiàn), SWT只封裝了PrintDLG打印對(duì)話框,可以設(shè)置頁面的大小,但不能設(shè)置頁面空白的大小。
由于本人以前是VB程序員,本能的就想到了comdlg32.dll 中的PageSetupDlg對(duì)話框。 如果可以直接掉用這個(gè)對(duì)話框, 省掉了多少麻煩事啊。
但是用JNI調(diào)用dll中的函數(shù)也很麻煩,還不如自己做一個(gè)頁面設(shè)置對(duì)話框來的方便。 于是查了一下sourceforge, 發(fā)現(xiàn)了JNative這個(gè)類庫。在稍稍看了JNative的源碼之后覺得這個(gè)庫寫的真是不錯(cuò)。 封裝了許多Win32 api中的類型(HWND,DWORD, LPARAM 等等)方便使用, 并且直接wrapper了不少dll (比如 Gdi32, Kernel32, Shell32, User32等dll),其中居然也包括ComDlg32 (可惜只封裝了ChooseColor 顏色選擇對(duì)話框)。
不過不要緊, 既然有了ChooseColor的 閱讀全文
posted @ 2008-08-22 14:52 onkyo 閱讀(753) | 評(píng)論 (0) 編輯