为啥在另一台电脑上会出现“Failed to create empty document”

chunyang_a 2010-05-30 12:36:01
辛辛苦苦用VC++2008版本把软件做好了,然后制作了安装包,当把安装包在另一台电脑上安装以后,运行之,竟然出现“Failed to create empty document”。我查了一查安装包有没有遗漏的内容,发现Microsoft_VC90_CRT_x86及Microsoft_VC90_mfc都已经安装在另一台电脑上了,查看了一下manifest,觉得它所提到的内容都已经通过安装包安装在另一台电脑上了,可是却出现刚才所说的现象。而源电脑没有这个毛病,为什么?为什么?
...全文
1365 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
kenshu 2012-11-08
  • 打赏
  • 举报
回复
引用 13 楼 chunyang_a 的回复:
MSCOMM.OCX不光是要注册,而且还需要授权,即要有Lincense, 我找到了注册表项的Lincese, 在目标机器上的注册表里,进行如下操作:在注册表里添加键值 HKEY_CLASSES_ROOT\Licenses 下建立 4250E830-6AC2-11cf-8ADB-00AA00C00905 键,添加为default 默认类型的值kjljvjjjoquqmjjjvpqqkqmqyky……
也不用安装包啦,程序一进去,在使用MSCOMM.OCX的窗口或控件之前,比如 CYourApplicationName::InitInstance() 进去就写一下注册表.
chunyang_a 2010-06-04
  • 打赏
  • 举报
回复
MSCOMM.OCX不光是要注册,而且还需要授权,即要有Lincense, 我找到了注册表项的Lincese, 在目标机器上的注册表里,进行如下操作:在注册表里添加键值 HKEY_CLASSES_ROOT\Licenses 下建立 4250E830-6AC2-11cf-8ADB-00AA00C00905 键,添加为default 默认类型的值kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun
接着,启动安装好的软件,哇,可以启动了。

问题是,我是用手工方式来修改注册表的,那位仁兄可以在安装包里就把该工作做好呢?
Monkey123yang 2010-06-04
  • 打赏
  • 举报
回复
那还是不行?
chunyang_a 2010-06-04
  • 打赏
  • 举报
回复
有一位"虚拟闲人",他是MVP,经过他的指点,我终于发现了症结所在,在感谢他的同时,我不妨拿出来与大家共享。
在我的程序中用到了Mscomm.ocx这一ActiveX控件,在我的代码中有创建这一控件的语句,如果屏蔽掉,它就不会返回-1,程序就能正常运行,只是无法使用该控件。该控件是一个串口通信控件。如果不屏蔽掉,它就会返回-1,导致Failed to create empty document.
于是我在制作安装包的时候加入MSCOMM.OCX,将Register属性改成vsdrfCOMSelfReg,然后Build(生成)它。接着将制作好的的安装包到目标计算机上去安装。安装好以后,启动它。
咦,怎么还是不行,仍然是“Failed to create empty document”
chunyang_a 2010-05-31
  • 打赏
  • 举报
回复
我的安装包就是使用VS2008里的“Setup and Deployment”工具做的(中文版里叫“安装部署”), 它是出自微软的,是不是微软的软件有问题?
chunyang_a 2010-05-31
  • 打赏
  • 举报
回复
这位“真心的雨”仁兄说的一点儿也没错,它确实返回了-1。我是在return -1之前加了一个MessageBox才发现的,不愧是一针见血。问题是:在源电脑上,一切运行正常,不会返回-1,为啥安装部署到另外一台电脑上,就返回-1呢?只是源电脑上安装了Visual Studio 2008系统,而目标电脑仅仅装了Windows XP系统,没有VS2008环境。
接下来,我做了一个试验,把目标电脑也安装VS2008,结果,原来通过安装包安装好的软件就能正常运行,真奇怪?接着我把目标电脑C盘擦掉,重装了Windows XP系统,也就是说没有了VS2008,原来的毛病又出现了,怎么回事儿?
zxdyu2009 2010-05-30
  • 打赏
  • 举报
回复
这个问题,原来遇到过的,是因为你的CMainFrm的OnCreate函数中哪个函数或者语句失败后,你返回-1了。
周药师 2010-05-30
  • 打赏
  • 举报
回复
我一般是直接把exe和相关的dll等文件做个压缩包给客户,解压就直接用了,难得搞什么安装的
youhun1990 2010-05-30
  • 打赏
  • 举报
回复
貌似是环境变量的问题。。
chunyang_a 2010-05-30
  • 打赏
  • 举报
回复
我查看了目标电脑上的程序,是程序运行到if (CFrameWnd::OnCreate(lpCreateStruct) == -1)这个语句时,由于返回-1而造成了“Failed to create empty document”错误,怎样解决?
chunyang_a 2010-05-30
  • 打赏
  • 举报
回复
你能够说的具体一点吗?安装包哪里出问题了
qq515383106 2010-05-30
  • 打赏
  • 举报
回复
安装包没有做好 ,或者做的安装包跟系统什么东东冲突了
chunyang_a 2010-05-30
  • 打赏
  • 举报
回复
那么,怎样才算安装包制作好呢?
周药师 2010-05-30
  • 打赏
  • 举报
回复
安装包没有做好 ,或者做的安装包跟系统什么东东冲突了

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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