我用MFC写了一个小程序,生成的exe本身是可以直接运行的,但是用到了 TeeChart8 这个控件,是 ocx 文件,需要先注册才能使用,如果不注册我的小程序就没法启动, 但是我的程序给别人用还得教别人怎么注册,虽然写了一个 bat 运行就可以自己注册,但是还是很麻烦。 想问问,怎么制作一个程序安装包, 可以自动把 ocx 放到不容易被用户误删除的目录,然后自动注册。 这样程序给别人用别人就可以理解了,就是一个需要安装的程序而已。
解决方案 »
- [win32]通过CreateWindowEx()创建的"button"需不需要UnregisterClass()?
- 请来看看~~~
- opengl怎么显示出旋转的角度值?
- 我用VC++写的FC游戏机模拟器,附带源代码,能够录像。
- 如何用VC编码实现画一个具有立体感圆环,各位大侠给我提供一个思路,太迷茫了!
- 问个幼稚的问题:学COM以后没什么用处了吗?
- 请问是什么静态连接库?
- 如何禁用最大化按钮!!!!!
- missing function header (old-style formal list?)
- INTERNER选项被禁止,怎么办?
- 目标物体三维重建 离散提取边缘坐标问题
- 求助:如何生成一个可以交互式的PDF文件
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
我并不是问如何注册 ocx,而是想做一个安装包,用户用安装包安装我的小程序,可以自动注册 ocx
OutFile Example.exeSection 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这是个基本的参考,并没有包含卸载程序。