MasteringVFP/19/1
出自VFP Wiki
MasteringVFP/19/1
的原始碼
跳轉到:
導航
,
搜尋
根據以下的原因,您並無權限去做編輯這個頁面:
你所請求執行的操作被禁止。
你可以檢視並複製本頁面的原始碼。
=== WINE === 談如何在 Linux 上使用VFP, 主要就是應用 WINE 這個 Open Source 來讓 Windows 的可執行檔能在 Linux 下執行.大致的介紹順序如下: ====[[前言]]==== 由於 Linux 的風行,有人就想,為什麼不把 VFP 放到 Linux 上呢? 於是就有人積極的尋找 Solution. 首先發現的就是 wine, 這個可以執行 Windows 執行檔的自由源碼專案. wine 是 wine is not emulator, 很清楚的指出,他並不是一個模擬器. 它可以執行 Windows 的 PE 執行檔,並將實際的 Windows API 轉為 Linux 的相對指令. 很幸運的,VFP 可以大致順利的在 Linux 上執行. 於是,展開了與 wine 共舞的樂章. 在此特別聲明,以下資料多半來自於網路上,我會盡力註明出處. ====[[Wine 的歷史]]==== 請直接參考 2003/08/15 的 Wine Traffic, 網址是: http://kt.zork.net/wine/wn20030815_183.html#5 ====[[安裝,from tarball]]==== 請先到 wine 官方網站(http://www.winehq.org)下載 tarball 檔案. 以 tar xzf 解開之後,我們還要進行 patch, patch 檔網址在此: http://www.paulmcnett.com/vfp/wine/vfpwinepatchwinsize 這個 patch 檔主要是修正 WAIT WINDOW 和 !TooltipText window 無法正確顯示的問題. Patch 方法: cat vfpwinepatchwinsize | patch -p1 也可以手動編輯 wine/dlls/x11drv/winpos.c 在約 887 行的地方,找到 <pre> BOOL X11DRV_SetWindowPos( WINDOWPOS *winpos ) </pre> 這個 function,並在裡面的 <pre> TRACE "hwnd %p ...... </pre> 之前加上 <pre> /* This is needed to flush pending X !ConfigureNotify events on this window */ MsgWaitForMultipleObjectsEx( 0, NULL, 0, 0, 0 ); </pre> 存檔以後即可. 然後再執行 ./tools/wineinstall 它會出現訊息,建議不要以 root 身分來安裝. 如果你堅持要以 root 身分來安裝, 請先離開此 script, 修改此 script,讓他忽略此訊息.(178~184 行,前面加上'#' ) ,再執行此 script. 如果要用別的身分來安裝,請用 su 指令切換到其他 user 帳號,或重新以其他 user 帳號登入,再執行 ./tools/wineinstall 即可. 此 script會執行 ./configure,設置必要的設定檔以及路徑. 然後再執行 <pre> make depend && make && make install </pre> 進行編譯及安裝工作. 若以其他user進行安裝的話,就依照 script指示即可 wine 最後會以 SUID 形式存在. ====[[RPM 安裝]]==== 請到官方網站下載符合你 Linux distribution 的 RPM 版本. 然後執行 <pre> rpm -ivh wine-2003xxxx.ix86.rpm </pre> 即可~ 但要注意的是,不保證可以用,建議還是以 tarball 安裝較佳.這樣也可加上 patch. ====[[Usage]]==== winhelp,notepad, regsvr32, regedit 這幾個不用說明,就跟Windows 上的一樣~ progman 的話就跟 Windows 3.1 上的 Progman 一樣,執行以後, 有用過 Windows 3.1 的人,大概會很懷念~ *winefile 則是檔案總管 *wcmd 是"命令提示字元" *uninstaller 則是"新增/移除程式" *winecfg 則是調校 wine 設定的程式 執行軟體時,以 wine 執行之,假設你複製了小算盤(calc.exe)進去\n那麼就輸入 wine calc.exe 即可~ 安裝軟體,也一樣,執行 setup 即可: <pre> wine setup.exe </pre> ====[[Configuration]]==== "Version" Section 的 Windows key 值改為 win2k "DllOverrides" Section 中所有 key 值改為 "native, builtin" 此外把你自己 Winnt\system32 或 Windows\system 下的 <pre> OLEAUT32.DLL COMMDLG.DLL COMDLG32.DLL SHELL.DLL SHELL32.DLL SHFOLDER.DLL SHLWAPI.DLL SHDOCVW.DLL ADVAPI32.DLL MSVCRT*.DLL VFP6*.DLL ODBC32.DLL ODBC32GT.DLL ODBC16GT.DLL ODBCINT.DLL ODBCCONF.DLL </pre> 都複製到 ~/c/windows/system 下 此外,OLE32.DLL, ADVAPI32.DLL, NTDLL.DLL 是不需要複製的,因為會造成無法執行. REGEDIT.EXE 也請複製到 ~/c/windows 下,因為我們要把 ODBC 的 Registry import 進去. 你也許會問 wine 不是提供了 regedit.exe 嗎?可是根據我自己的試驗,它並無法匯入. 請在 Windows 下執行 regedit.exe 將 <pre> HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers </pre> 以及 <pre> HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\Microsoft Visual FoxPro Driver </pre> 這兩個機碼都匯出.分別存為 ODBCDrivers.reg 及 VFPDriver.reg 然後編輯 ODBCDrivers.reg ,將其他 Driver 都刪掉,只留下 Microsoft Visual FoxPro Driver 即可,接著就拿到 Linux 上,執行 regedit.exe 匯入囉. ====[[開始使用 VFP]]==== 我自己是建議不要用 setup 安裝,網路上的一些狐友也這樣說 就是用 copy 的方式把 Program Files 目錄下的 VFP 目錄直接複製到 ~/c/Program Files 下 再參考上面的 Configuration 一節作修正. 接著就可以執行 wine VFP6.EXE 啦~~ 進入以後,你會發現 command window 無法顯示游標,請用 Alt+TAB 切到別的視窗, 再按一次 Alt+TAB 切回 VFP,即可. ====[[Issue]]==== ====[[EULA - Microsoft 的阻撓]]==== ====[[參考網址]]==== ====[[螢幕快照]]==== 或可直接連接至此 http://home.kimo.com.tw/h94u04bp6/archives/000103.html
返回到
MasteringVFP/19/1
。
檢視
頁面
討論
原始碼
歷史
個人工具
登入/建立新帳號 選單
導航
首頁
社群入口
現時事件
近期變動
隨機頁面
使用說明
搜尋
工具箱
鏈入頁面
相關頁面修訂記錄
所有特殊頁面