近日给编写了一个串口与单片机的程序,却发现生成的release版本exe文件在没有安装vc的电脑上无法正常运行,点击没有任何反应。
然后,用vc自带的库连接检查工具depends.exe检查,没有任何进展。
在网上查阅有人认为是因为程序引用了ActiveX插件,要进行插件注册,于是在一台没有安装vc的电脑上的电脑->运行 中输入
RegSvr32 H:\MSCOMM32.OCX 进行串口插件的注册(mscomm32.ocx在安装vc的电脑的c:\windows\system32路径下能找到)
这样再打开程序,就可以正常运行,确认了是Active X 插件问题。
但是应用程序每运用到一个新的电脑上就要运行一便插件注册是很不方便的,于是,便想在程序里自动注册插件。在网上看到这样一段程序
LPCTSTR pszDllName="MSCOMM32.OCX";
//装载ActiveX控件
HINSTANCE hLib = LoadLibrary(pszDllName);
if (hLib < (HINSTANCE)HINSTANCE_ERROR)
{
MessageBox("不能载入Dll文件!","结果",MB_OK);
return 0;
}
//获取注册函数DllRegisterServer地址
FARPROC lpDllEntryPoint;
lpDllEntryPoint = GetProcAddress (hLib,_T("DllRegisterServer"));
//调用注册函数DllRegisterServer
if(lpDllEntryPoint!=NULL)
{
if(FAILED((*lpDllEntryPoint)()))
{
MessageBox("调用DllRegisterServer失败!","结果",MB_OK);
FreeLibrary(hLib);
return 0;
};
MessageBox("注册成功","结果",MB_OK);
}
else
MessageBox("调用DllRegisterServer失败!","结果",MB_OK);
以上程序无法进行动态的地址搜索功能,仅仅需要在程序开始处进行简单的修改,如下
CString strPath;
TCHAR szCurrentDir[MAX_PATH];
::GetCurrentDirectory(MAX_PATH, szCurrentDir);
strPath.Format(_T( "%s"), szCurrentDir);
CString strapp=strPath+"\\MSCOMM32.OCX";
MessageBox(strapp);
LPCTSTR pszDllName=strapp;
这样就可以随着应用程序目录的不同而动态获取系统的当前应用程序目录来进行mscomm32.ocx注册。其中两个\\代表去掉转义效果
然后需要考虑的问题是,这段程序放在哪儿?由于我采用的FMC编程,一开始我放在dlg初始化函数内,却发现没有效果。在定义dlg之前也没有效果。
这个问题一直没解决。。
下面考虑采用制作安装包的方法来解决这个问题。
应用程序在制作安装包的时候有一项是提前注册程序所需要的动态链接库以及插件。
采用vc自带的installshield for microsoft visual c++ 6.0制作应用程序安装包。
制作过程如下:
首先参考了installshield的help文档里面的getstarted生成了一个可以安装的安装包test。
然后在此基础上进行修改,步骤如下
用向导生成一个工程之后
在File Groups选项里面
Program DLLs Program Executable Files Shared DLLs里面分别在links中加入 Comm.exe 和 mscomm32.ocx
在components选项中
Program Files 和Shared DLLs中双击,在右侧栏中的Included File Groups中,加入相应的文件夹Program Executable Files Shared DLLs
在Scripts选项中
在setup.rul中的函数SetupFolders加入以下内容:
在begin上面加入 TRING svPath;
在TODO:下面加入
svPath= TARGETDIR ^ "Comm.exe";
LongPathToQuote ( svPath , TRUE );
AddFolderIcon ( "" , " Comm" , svPath , "" , "" , 0 , "" , REPLACE );
(注:以上均可以在help中的getstarted中找到方法)
之后再Media选项中,用Media Build Wizard建立镜像文件,选择3.5“diskette-1.44MBytes
然后就基本完成功能,可以在没有vc的环境下可以安装并运行
分享到:
相关推荐
VisualBasic6.0编写的一个铸造过程温度场模拟的程序VisualBasic6.0编写的一个铸造过程温度场模拟的程序VisualBasic6.0编写的一个铸造过程温度场模拟的程序VisualBasic6.0编写的一个铸造过程温度场模拟的程序Visual...
《Visual C++ 6.0 实例教程》是一本针对初学者和有一定基础的程序员设计的教程,旨在帮助读者深入理解和掌握Microsoft的Visual C++ 6.0开发环境。Visual C++是C++编程语言的强大集成开发环境(IDE),它不仅支持C++...
vc6.0编写需要管理员权限运行的程序 添加资源文件
VB6.0企业精简版在此基础上进一步优化了体积,减少了不必要的组件,使其更加轻便,运行效率更高。 该“vb6.0精简版”主要包含以下几个关键知识点: 1.**事件驱动编程**:VB6.0的核心编程模式是事件驱动,用户界面上...
《Visual C++6.0实例教程》是一份专为初学者设计的教程,旨在通过具体的实例来教授如何在Microsoft Visual C++ 6.0(简称VC++6.0)环境中进行C++编程。Visual C++6.0是微软公司发布的一款强大的集成开发环境,它不仅...
本教程将引导你了解如何使用Visual C++ 6.0创建、编译和运行面向对象的C++程序。 首先,你需要理解面向对象的基本概念:类、对象、封装、继承和多态。类是面向对象编程的核心,它是对象的模板,定义了对象的数据...
**Visual Basic 6.0 Win32 API程序设计** Visual Basic 6.0(VB6)是Microsoft开发的一种可视化编程环境,它允许开发者快速构建Windows应用程序。尽管现在Visual Basic已经发展到更新的版本,但VB6依然在许多企业中...
《MSDN Library Visual Studio 6.0 中文版本》是一个为初学者量身打造的开发资源库,它包含了丰富的Visual Studio 6.0相关的技术文档、教程和参考资料,旨在帮助开发者快速掌握这款经典开发工具的使用。Visual ...
在阅读提供的"第2章 利用Visual C++6.0生成应用程序"文件时,你将更深入地了解到创建项目、编写代码、编译和调试的具体步骤,以及可能遇到的问题和解决方法。这将为你的C++学习之路打下坚实的基础。不断实践和探索,...
#### 二、在Visual C++6.0 下编写和调试C程序 ##### 1. 启动Visual C++6.0 - **步骤**:安装Visual C++6.0 后,可以通过“开始”菜单中的“所有程序”选项找到“Microsoft Visual C++ 6.0”,点击即可打开软件。 ...
在信息技术领域,Visual Basic 6.0(VB6)和Visual C++ 6.0(VC++6)是两款非常重要的开发工具,它们分别代表了微软在面向对象编程和快速应用程序开发(RAD)领域的杰出成就。这两款工具各自拥有独特的优点,且在...
Visual C++ 6.0是微软公司发布的一款集成开发环境(IDE),专为Windows平台的32位应用程序开发设计。这款工具在编程界具有深远的影响,尤其对于初学者和专业开发者来说,它提供了丰富的功能和易用性。下面将详细介绍...
1. 集成开发环境:VC++ 6.0提供了全面的开发工具集,包括源代码编辑器、调试器、资源编辑器、性能分析工具等,使开发者可以在一个统一的环境中完成从编写代码到调试程序的所有工作。 2. MFC库:Microsoft ...
VC6.0 将程序打包成一个可执行文件(release) 是一种常见的操作,在这种操作中,我们需要将编译好的程序打包成一个独立的可执行文件,以便在不同的环境中运行。在这篇文章中,我们将学习如何使用 VC6.0 将程序打包成...
本书是美国微软出版社授权的Microsoft Visual Studio 98 系列中文版图书之一,详细介绍了Visual C++ 6.0 的iostream流和运行库,并用典型实例说明其用法,是关于Visual C++ 6.0 应用开发的重要参考书。全书共分成两...
VisualC6.0编写、调试和运行C程序流程.doc
总的来说,Visual Assist X v10.0是Visual C++6.0用户不可或缺的工具,它通过扩展IDE的功能,提升了开发效率,降低了出错率,使得开发者可以更加专注于创新和解决问题,而非繁琐的代码细节。对于初学者和经验丰富的...
Visual C++ 6.0(完整绿色版)vc++6.0、Visual_assist_X_for_VC6.0破解版(今天突然发现系统自动修改需要50积分,下载的实在抱歉)
**VC 6.0(Visual C++ 6.0)** 是微软公司推出的一款经典且具有里程碑意义的集成开发环境(IDE),它专为C++编程语言设计,是许多程序员入门和开发Windows应用程序的重要工具。这款IDE以其高效、直观的可视化界面和...