VB Calendar控件无法正常显示日期和出错

ajunajun 2017-06-24 10:33:56
我的程序打包以后安装到有的WIN 7系统上不显示日期

安装到Windows Server 2008上软件直接停止工作。
从网上搜了一下,有人回答:
Calendar控件需要注册才能使用,你可以为你的程序做一个安装程序,用VS里的“打包和展开向导”来做即可。

怎么解决这个问题,希望能告诉详细的解决办法!
...全文
967 9 打赏 收藏 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ajunajun 2017-07-08
  • 打赏
  • 举报
回复
引用 3 楼 zhao4zhong1 的回复:
在64位Windows下: 64位exe和dll在目录c:\windows\system32目录下; 32位exe和dll在目录c:\windows\syswow64目录下;
用你的方法在win7 下解决了,可win 2008 server下虽然注册控件成功,可还是不行。
舉杯邀明月 2017-07-01
  • 打赏
  • 举报
回复
引用 5 楼 ajunajun 的回复:
用的是VB6.0自带的啊

. . . . . .

这个“日历控件”, 并不是VB6自带的,“企业版”的控件中也不包含它。
它应该是属于“MS Office”的一个组件。

我在WinXP系统下写了个简易程序测试:
控件是8.0版的,跟楼主5楼中的信息一样。

然后,在另一个Win7系统中运行,这个系统中没有安装Office,也没有MSCAL.ocx控件。
第一次测试: 在目录A中,只有编译好的exe程序,启动出错!(必然的,因为无法加载控件)


第二次测试: 在目录B中,编译好的exe程序、MSCAL.ocx放一起。直接启动就行了……


登录账号是“普通管理员”,我开始以为需要“以管理员身份运行”启动程序一次才行。
没想到直接启动都可以,并且在注册表中能够找到控件的注册信息了。
没有试验在“标准账户”下(就是“没有管理员权限”的账号)、控件未注册时,能不能直接启动。
不想试了,换系统麻烦…………

并且我在4楼也说过了:在WinXP下引用8.0控件编译的程序,然后在Win7 +14.0版控件环境下也是正常运行!
舉杯邀明月 2017-07-01
  • 打赏
  • 举报
回复
引用 6 楼 greatbody 的回复:
建议自己写控件。
有现成的、稳定的、并且能够满足需求的控件,还费那么大的劲去自己写? 小白用VB写程序,却偏偏喜欢“程序打包工具”搞个“安装程序”,然而遇到点什么问题又根本找不到原因。 难道搞出一个“安装程序”就会显得你的程序很高大上了么! 我用VB6写的程序,无论用到多少个第三方组件,都不需要“安装”,直接运行就可以! 在有“UAC”功能的系统中,最多在第一次运行时需要“以管理员身份运行”一次,之后直接启动就可以了。
greatbody 2017-06-30
  • 打赏
  • 举报
回复
建议自己写控件。
ajunajun 2017-06-30
  • 打赏
  • 举报
回复
用的是VB6.0自带的啊

你们的回答我怎么不明白啊



引用 1 楼 Chen8013 的回复:
是用的MS Office的MSCAL.ocx控件吗?


引用 2 楼 Tiger_Zhao 的回复:
如果是 Office 控件可能需要安装相同版本的 Office ———— Calendar 控件可能需要其它组件支持。




引用 3 楼 zhao4zhong1 的回复:
在64位Windows下:
64位exe和dll在目录c:\windows\system32目录下;
32位exe和dll在目录c:\windows\syswow64目录下;
所以要注意:
舉杯邀明月 2017-06-26
  • 打赏
  • 举报
回复
今天我做了个试验: 在Win7系统中,使用Office 2007的日历控件,做了个简单的程序; 然后到WinXP中运行,出现的问题跟楼主一样。 因为那个XP系统中没有安装Office,系统中的控件是8.0版(估计是Office97用的),  并且想把Offce 2007的控件注册到系统中,也注册失败。(我把它依赖的msvcr80.dll也复制过去了的) 但是,我在WinXP中,引用8.0版日历控件,做了个同样的exe,到Win7中运行,却是完全正常的! WinXP中,日历控件是英文版,界面显示的是英文; Win7中的12.0版是中文,运行程序后,似乎跟最初那个直接引用12.0版的程序没啥区别。 因此:建议楼主还是用低版本控件来开发吧, 只要安装了MS Office,一般来说都是“高版本”的了,高版本的控件肯定能兼容低版本。
赵4老师 2017-06-26
  • 打赏
  • 举报
回复
在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
Tiger_Zhao 2017-06-26
  • 打赏
  • 举报
回复
如果是 Office 控件可能需要安装相同版本的 Office ———— Calendar 控件可能需要其它组件支持。
舉杯邀明月 2017-06-25
  • 打赏
  • 举报
回复
是用的MS Office的MSCAL.ocx控件吗? 直接把这个控件文件与你的exe文件放一起,第一次运行时”以管理员身份运行“就可以了。 你可以在”程序启动“时,检查一下注册表中有没有相应的注册表项,   如果有,说明控件已经注册,程序可以运行; 如果没有,就再检查当前进程是否具有管理员权限:   如果没有,就提示用户以管理员身份运行、然后退出;   如果有则继续运行程序,这样就可以直接自动注册控件了。

1,453

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧