MFC 生成release版本程序无法在非VC环境运行

ZJW_XTU 2010-10-21 01:28:14
请教高手帮忙!
补充:已经 改为 使用MFC静态链接库 了~其他机器上运行 不报错~,双击一点反应都没有。
我在百度上看到两种方法:
第一种方法、要把静态库的LIB文件包含到exe的根目录下(前提是你程序加载LIB的路径是根目录);如果在别的地方加载 比如C盘里安装的文件 那你考过去的电脑里C盘同样路径下也要安装此文件。
第二种方法:最好还是通过vc待的depend工具监测程序所需dll文件,然后和exe程序放在一起比较保险。

第一种方法我不知道具体如何操作,我照着第二种方法做了,看到了exe依赖的dll文件有很多,但到什么地方找这些文件呢?
...全文
512 20 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
无云 2011-07-11
  • 打赏
  • 举报
回复
我也遇到这个问题,谢谢大家!
ZJW_XTU 2010-10-29
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 delphigis 的回复:]
MSCOMM控件是要注册的,debug版也要注册

看debug版运行不?如果debug版能运行,可能是你用了某个第三方库,那个DLL调用的是debug版的
[/Quote]
真的很感谢,问题解决了。我将MSCOMM在非VC环境的电脑上注册的时候程序就能正常运行了,谢谢了!
MSCOMM注册的方法可详见:http://www.gjwtech.com/scomm/manaualregistermscomm.htm
百事烟 2010-10-27
  • 打赏
  • 举报
回复
MSCOMM控件是要注册的,debug版也要注册

看debug版运行不?如果debug版能运行,可能是你用了某个第三方库,那个DLL调用的是debug版的

ZJW_XTU 2010-10-27
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 sendwb 的回复:]
放出代码,我大根猜出的你问题产生的原因,但需要验证
[/Quote]
你邮箱多少 我发给你看看。
sooth2008 2010-10-26
  • 打赏
  • 举报
回复
在你的vs的安装位置搜索 找到vcredist_x86.exe,然后在目标机器上安装vcredist_x86.exe就可以了.
ZJW_XTU 2010-10-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 happyparrot 的回复:]
你的程序有没有用到什么特殊的东西呢?比如控件啊,动态库啊,第三方的东西啊
[/Quote]
没用什么特殊的东西啊 就用了一个串口 能帮我看看吗?
dty00007 2010-10-26
  • 打赏
  • 举报
回复
我知道你的问题,我也与到过同样问题,那是在没有装备VC的电脑上一般没有注册控件,你这里使用了MSCOMM控件,所以就不行了,建议去网上找个MSCOMM控件注册机,把MOSCOMM控件希尔注册表,这样即使没装VC,也能用MSCOMM控件。
sendwb 2010-10-26
  • 打赏
  • 举报
回复
放出代码,我大根猜出的你问题产生的原因,但需要验证
haogeai123 2010-10-23
  • 打赏
  • 举报
回复
我也试过,明明用静态链接然后批生成就行了,但到别的机子上就不行了。不知道怎么回事。
魔都小强 2010-10-23
  • 打赏
  • 举报
回复
项目属性设置的问题了,把DEBUG能运行的项目属性设置复制到RELEASE状态下的,注意库的问题。
ZJW_XTU 2010-10-22
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 tiger9991 的回复:]
说起来,你的状况比Debug版本还不如的样子......再提供多点信息
[/Quote]
我的界面使用到了MSCOMM控件,串口通信编程。其它的都是些普通的控件了。我就是将VC6.0产生的realese版本在非VC环境下的电脑不能成功。
release的过程如下:
1.project->settings->general->Microsoft Foundation Classes:Use MFC in a Static Library.
2.在菜单栏或工具栏的空白处点右键选择Build->Win32 Release.
3.进行批构建。

xengine-qyt 2010-10-22
  • 打赏
  • 举报
回复
多半用了第三方模块,而且那模块 多半是 DEBUG编译的。。。
shiyunqiang 2010-10-22
  • 打赏
  • 举报
回复
VC6.0发布版需要两个地方都设置静态链接库:

1.project->settings->general->Microsoft Foundation Classes:Use MFC in a Static Library.
2.在菜单栏或工具栏的空白处点右键选择Build->Win32 Release.

这两个地方都设置好后,编译一下就可以了。
libinfei8848 2010-10-21
  • 打赏
  • 举报
回复
安装vcredist_x86.exe文件
saiyaman5 2010-10-21
  • 打赏
  • 举报
回复
用depend吧,那些依赖的文件都在你的电脑上,不会找就直接搜索文件名
看不见的裂痕 2010-10-21
  • 打赏
  • 举报
回复
说起来,你的状况比Debug版本还不如的样子......再提供多点信息
ouyh12345 2010-10-21
  • 打赏
  • 举报
回复
做安装包吧,在depend查到的dll列表里,双击一个dll,出弹出一个提示框,显示路径
快乐鹦鹉 2010-10-21
  • 打赏
  • 举报
回复
你的程序有没有用到什么特殊的东西呢?比如控件啊,动态库啊,第三方的东西啊
LuciferStar 2010-10-21
  • 打赏
  • 举报
回复
不知道你的项目是怎么设置的。用了.NET?
再怎么着,也总得有个错误提示吧?
因文件超过20M不能上传,所以拆分为两个文件分次上传 第1章 COM背景知识 1.1 COM的起源 1.1.1 软件业面临的挑战 1.1.2 传统解决方案 1.1.3 面向对象程序设计方法 1.1.4 最终解决方案:组件软件 1.1.5 面向对象的组件模型——COM 1.2 COM的发展历程 1.2.1 COM以前的对象技术:DDE、OLE 1、VBX控件 1.2.2 COM首次亮相:OLE2 1.2.3 Microsoft拥抱Internet:ActiveX 1.2.4 更多的新名词:Windows DNA和COM+ 1.2.5 远程对象:ORBs和DCOM 1.2.6 COM的最新版本:COM+ 1.3 COM技术现状 1.3.1 COM与CORBA 1.3.2 COM与Enterprise Java Beans 1.3.3 Windows之外的COM 小结 第2章 从C++到COM 2.1 C++客户重用C++对象——例程DB 2.1.1 C++对象 2.1.2 客户程序 2.2 将C++对象移进DLL中——例程DB_cppdll 2.2.1 成员函数的引出 2.2.2 内存分配 2.2.3 Unicode/ASCII兼容 2.2.4 例程实现 2.2.4.1 修改接口文件 2.2.4.2 修改对象程序 2.2.4.3 修改客户程序 2.3 C++对象使用抽象基类——例程DB_vtbl 2.3.1 问题:私有数据成员被暴露 2.3.2 解决方案:抽象基类 2.3.2.1 什么是抽象基类(Abstract Base Class) 2.3.2.2 实现秘诀:虚函数(Virtual Functions) 2.3.3 使用抽象基类 2.3.4 例程实现 2.3.4.1 修改接口文件 2.3.4.2 修改对象程序 2.3.4.3 修改客户程序 2.4 改由COM库装载C++对象——例程dbalmostcom 2.4.1 COM库 2.4.2 对象创建的标准入口点 2.4.3 标准对象创建API 2.4.4 标准对象注册 2.4.5 例程实现 2.4.5.1 修改接口文件 2.4.5.2 修改对象程序 2.4.5.3 修改客户程序 2.5 将C++对象变成COM对象 2.5.1 引用计数 2.5.2 多接口 2.5.3 IUnknown接口 2.5.4 标准类厂接口:IClassFactory 2.5.5 对象代码的动态卸载 2.5.6 自动注册 2.5.7 例程实现 2.5.7.1 修改接口文件 2.5.7.2 修改对象程序 2.5.7.3 修改客户程序 2.6 为COM对象添加多接口支持 2.6.1 多接口 2.6.2 DEFINE_GUID 2.6.3 例程实现 2.6.3.1 修改接口文件 2.6.3.2 修改对象程序 2.6.3.3 修改客户程序 小结 第3章 COM基础知识 3.1 对象与接口 3.1.1 COM对象 3.1.2 COM接口 3.1.3 IUnknown接口 3.1.3.1 生存期控制:AddRef和Release 3.1.3.2 接口查询:QueryInterface 3.1.4 全球唯一标识符GUID 3.1.5 COM接口定义 3.1.6 接口描述语言IDL 3.2 COM应用模型 3.2.1 客户/服务器模型 3.2.2 进程内组件 3.2.3 进程外组件 3.2.4 COM库 3.2.5 HRESULT返回值 3.2.6 COM与注册表 3.3 COM组件 3.3.1 实现类厂对象 3.3.2 类厂对象的创建 3.3.3 实现自动注册 3.3.4 实现自动卸载 3.4 COM客户 3.4.1 COM对象创建函数 3.4.1.1 CoGetClassObject 3.4.1.2 CoCreateInstance 3.4.1.3 CoCreateInstanceEx 3.4.2 如何调用进程内组件 3.4.3 COM客户调用进程外组件 3.5 进一步认识COM 3.5.1 可重用机制:包容和聚合 3.5.2 进程透明性 3.5.3 安全性机制 小结 第4章 COM扩展技术 4.1 可连接对象机制 4.1.1 客户、接收器与可连接对象 4.1.1.1 接收器 4.1.1.2 可连接对象 4.1.1.3 客户 4.1.2 实现可连接对象 4.1.3 实现接收器 4.1.4 建立接收器与连接点的连接 4.1.5 获得出接口的类型信息 4.2 结构化存储 4.2.1 什么叫结构化存储和复合文件 4.2.2 存储对象和IStorage接口 4.2.2.1 IStorage接口 4.2.2.2 获得IStorage指针 4.2.2.3 释放STATSTG内存 4.2.2.4 枚举存储对象中的元

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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