我用MFC寫了一個小程式,生成的exe本身是可以直接運行的,但是用到了 TeeChart8 這個控制元件,是 ocx 檔案,需要先注冊才能使用,如果不注冊我的小程式就沒法啟動, 但是我的程式給別人用還得教別人怎么注冊,雖然寫了一個 bat 運行就可以自己注冊,但是還是很麻煩。
想問問,怎么制作一個程式安裝包, 可以自動把 ocx 放到不容易被用戶誤洗掉的目錄,然后自動注冊。 這樣程式給別人用別人就可以理解了,就是一個需要安裝的程式而已。
uj5u.com熱心網友回復:
在64位Windows下:64位exe和dll在目錄c:\windows\system32目錄下;
32位exe和dll在目錄c:\windows\syswow64目錄下;
所以要注意:
在win64位系統下注冊32位ocx或dll需要將32位ocx或dll拷貝到c:\windows\syswow64\目錄下。
且注冊要用c:\windows\syswow64\regsvr32 xxxxxxx.ocx或dll
在win64位系統下設定32位程式使用的資料庫別名要用c:\windows\syswow64\cliconfg.exe
在win64位系統下設定32位程式使用的系統DSN要用c:\windows\syswow64\odbcad32.exe
64 位 Windows 平臺注意點之檔案系統重定向 http://www.cnblogs.com/jiake/p/4981555.html
64 位 Windows 平臺注意點之注冊表重定向 http://www.cnblogs.com/jiake/p/4956218.html
學會使用depends.exe查看exe依賴的dll
uj5u.com熱心網友回復:
我并不是問如何注冊 ocx,而是想做一個安裝包,用戶用安裝包安裝我的小程式,可以自動注冊 ocx
uj5u.com熱心網友回復:
趙老師,好習慣。
uj5u.com熱心網友回復:
已經找到方法,用 ActualInstaller 制作安裝包,可以在指定的時間執行指定的檔案uj5u.com熱心網友回復:
inno 這個制作安裝包挺好的.甚至支持第三方庫(比如duilib)皮膚庫.uj5u.com熱心網友回復:
我沒用過inno,所以我也不知道inno有沒有缺點。
uj5u.com熱心網友回復:
我個人用 NSIS 多年,做這種相對簡單:!include x64.nsh這是個基本的參考,并沒有包含卸載程式。
Name Example
OutFile Example.exe
Section Install
SetOutPath $INSTDIR
// 打包你自己的程式檔案(本機路徑)
File /r ".\dir1\*"
// 創建桌面快捷圖示
CreateShortcut "$DESKTOP\AppName.lnk" "$INSTDIR\app.exe"
// 創建卸載程式
WriteUninstaller "$INSTDIR\uninst.exe"
SetOutPath $SYSDIR // $SYSDIR: System32 (x86) / SysWow64 (x64)
// 打包其他檔案(本機路徑)
File ".\dir2\xxx_x86.ocx"
ExecWait `"$SYSDIR\regsvr32.exe" /s "$SYSDIR\xxx_x86.ocx"`
// 如果不考慮64位,這段判斷可以不要。
// 比如你的程式和 ocx 都是32位。
// 64位平臺下釋放并注冊64位檔案
${If} ${RunningX64}
${DisableX64FSRedirection} // $SYSDIR: SysWow64 => System32 (x64)
// 打包其他檔案(本機路徑)
File ".\dir2\xxx_x64.ocx"
ExecWait `"$SYSDIR\regsvr32.exe" /s "$SYSDIR\xxx_x64.ocx"`
${EnableX64FSRedirection} // $SYSDIR: System32 => SysWow64 (x64)
${EndIf}
SectionEnd
uj5u.com熱心網友回復:
VS2010本身就自帶有打包工具。轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/91099.html
上一篇:mfc 多檔案 設定標簽的顏色
