VC C++程序打包详细教程

合集下载

vc++MFC基础教程

vc++MFC基础教程

1.2.3 编辑区
• 在Visual C++中,编写应用程序代码的位置就是编辑区。该编辑区的 功能十分强大,智能化程度也非常高。在编辑区内,除了能编写 C/C++语言外,还能编写SQL、HTML和VBScript等其他编程语言。 如下图所示。
1.2.4 联机帮助
• Visual C++6.0不像其他集成开发环境一样把帮助系统集成在开发环境 内部,而是提供了一个专门为Visual C++设计的MSDN类库。MSDN 虽然是一个独立的帮助系统,但却能很好地和Visual C++6.0集成在一 起。 • MSDN的使用方式有以下几种: • 单击【Help】|【Contents】命令; • 单击【Help】|【Search】命令; • 单击【Help】|【Index】命令; • 按下【F2】键。 • 通过上述几种命令方式,即可运行MSDN。
1.2.1 工作区窗口和输出窗口
• Find in Files 1和Find in Files 2:两个选项卡的作用相同,用于显示 从多个文件中查找字符串的结果。当用户想要查看某个函数或变量出 现在哪些文件中,单击【Edit】|【Find in Files】命令,弹出【Find in Files】对话框,如下图所示。在【Find in Files】对话框中的 【Find what】后的编辑框中,输入想要查找的内容,单击【Find】按 钮即可。查找到的内容会输出到Find in Files选项卡中。
第1章 Visual C++集成开发环境
• Visual C++是一个功能强大的可视化应用程序开发工具。其凭借强大 功能,受大了广大程序员的欢迎。当今流行的Visual C++的开发工具 是6.0版本。下面来介绍Visual C++ 6.0的一些基本情况。

VC++6.0使用方法(精品简约)

VC++6.0使用方法(精品简约)

第一部分C语言编程环境简介第1章计算机程序设计实验的一般步骤1.1 计算机程序设计实验的目的C语言程序设计是一门实践性很强的课程,该课程的学习有其自身的特点,学习者必须通过大量的编程训练,在实践中掌握程序设计语言,培养程序设计的基本能力,并逐步理解和掌握程序设计的思想和方法。

具体的说,通过上机实践,应该达到以下几点要求:1.使学习者能很好地掌握一种程序设计开发环境的基本操作方法(例如(Visual C++6.0),掌握应用程序开发的一般步骤。

2.在程序设计和调试程序的过程中,可以帮助学习者进一步理解教材中各章节的主要知识点,特别是一些语法规则的理解和运用,程序设计中的常用算法和构造及应用,也就是所谓“在编程中学习编程”。

3.通过上机实践,提高程序分析、程序设计和程序调试的能力。

程序调试是一个程序员最基本的技能,不会调试程序的程序员就意味着他即使会一门语言,却不能编制出任何好的软件。

通过不断的积累经验,摸索各种比较常用的技巧,可以提高编程的效率和程序代码的质量。

下面介绍计算机程序设计实验的一般步骤:1.2 计算机程序设计实验的准备上机前需要做好如下准备工作,以提高上机编程的效率。

(1)在计算机上安装一种程序设计开发工具,并学会基本的操作方法。

(2)复习与本次实验相关的教学内容和主要知识点。

(3)准备好编程题程序流程图和全部源程序代码,并且先进行人工检查。

(4)对程序中有疑问的地方做出标记,充分估计程序运行中可能出现的问题,以便在程序调试过程中给予关注。

(5)准备好运行和调试程序所需的数据。

1.3 计算机程序设计实验的步骤(1)运行程序设计开发工具,进入程序设计开发环境。

(2)新建一个文件,输入准备好的程序。

(3)不要立即进行编译和连接,应该首先仔细检查刚刚输入的程序,如有错误及时改正,保存文件后再进行编译和连接。

(4)如果在编译和连接的过程中发现错误,根据系统的提示找出出错语句的位置和原因,改正后再进行编译和连接。

C语言VC6.0中文版上机操作指导

C语言VC6.0中文版上机操作指导

C语言上机操作指导程序设计是实践性很强的过程,任何程序最终都必须在计算机上运行,以检验程序的正确与否。

因此在学习程序设计中,一定要重视上机实践环节,通过上机可以加深理解C语言的有关概念,以巩固理论知识,另一方面也可以培养程序调试的能力与技巧。

1.C语言程序的上机步骤按照C语言语法规则而编写的C程序称为源程序。

源程序由字母、数字及其它符号等构成,在计算机内部用相应的ASCII码表示,并保存在扩展名为“.C”的文件中。

源程序是无法直接被计算机运行的,因为计算机的CPU只能执行二进制的机器指令。

这就需要把ASCII 码的源程序先翻译成机器指令,然后计算机的CPU才能运行翻译好的程序。

源程序翻译过程由两个步骤实现:编译与连接。

首先对源程序进行编译处理,即把每一条语句用若干条机器指令来实现,以生成由机器指令组成的目标程序。

但目标程序还不能马上交计算机直接运行,因为在源程序中,输入、输出以及常用函数运算并不是用户自己编写的,而直接调用系统函数库中的库函数。

因此,必须把“库函数”的处理过程连接到经编译生成的目标程序中,生成可执行程序,并经机器指令的地址重定位,便可由计算机运行,最终得到结果。

C语言程序的调试、运行步骤可以用图A-1表示:图A-1C语言程序的调试、运行步骤图A-1中,虚线表示当某一步骤出现错误时的修改路线。

运行时,无论是出现编译错误、连接错误,还是运行结果不对(源程序中有语法错误或逻辑错误),都需要修改源程序,并对它重新编译、连接和运行,直至将程序调试正确为止。

除了较简单的情况,一般的程序很难一次就能做到完全正确。

在上机过程中,根据出错现象找出错误并改正称为程序调试。

我们要在学习程序设计过程中,逐步培养调试程序的能力,它不可能靠几句话讲清楚,要靠自己在上机中不断摸索总结,它可以说是一种经验积累。

程序中的错误大致可分为三类:程序编译时检查出来的语法错误;连接时出现的错误;程序执行过程中的错误。

编译错误通常是编程者违反了C语言的语法规则,如保留字输入错误、大括号不匹配、语句少分号等等。

解决VisualC++编译器中混合.c文件时收到C1853预编译头错误的方法

解决VisualC++编译器中混合.c文件时收到C1853预编译头错误的方法

解决VisualC++编译器中混合.c文件时收到C1853预编译头错误的方法第一篇:解决Visual C++ 编译器中混合 .c 文件时收到 C1853 预编译头错误的方法解决Visual C++ 编译器中混合.c 文件时收到 C1853 预编译头错误的方法当Visual C++ 项目启用了预编译头(Precompiled header)功能时,如果项目中同时混合有.c 和.cpp 源文件,则可能收到 C1853 编译器错误:fatal error C1853: 'pjtname.pch' precompiled header file is from a previous version of the compiler, or the precompiled header is C++ and you are using it from C(or vice versa)(致命错误C1853: “filename.pch”预编译头文件来自编译器的早期版本,或者预编译头为C++ 而在C 中使用它(或相反))。

该错误是因为当项目中混合了.cpp 和.c 文件时,编译器会对它们采取不同的编译方式(主要是因为对函数声明的处理方式不同),因而不能共用一个预编译头文件。

在VC++ 中,默认的预编译头文件是针对 C++ 的(stdafx.h 和 stdafx.cpp),当然也可以创建针对 C 的预编译头。

有趣的是,在旧版的VC++ 中,这个错误的提示很具有误导性:fatal error C1853: 'xxx.pch' is not a precompiled header file created with this compiler.常常让人摸不着头脑。

应该说,在新版中的这个提示是有所改进的。

不过在网上搜索一番,对这个问题往往都是建议对整个项目取消预编译头的设置。

这显然不是一个好的解决方案。

第1章(含如何用VC60建工程与写、编译、执行程序)

第1章(含如何用VC60建工程与写、编译、执行程序)


口标如题栏 下:

菜单栏

工具栏


文件编辑区

项目工作区
(Visual C++ 6.0
输出区
状态栏

境 )
返回
返回本节目录
14
1.1.3 Visual C++ 6.0集成环境
C
《 2. 编辑源程序文件
单击该选项 输入项目名
语 (1)建立新工程项目
言 ①单击“文件”-“新建”,

弹出
单击“工程”
C

语 3.连接

(1)连接过程是将编译过程中生成的目标代码进行连接处理,

生成可执行程序文件的过程。

(2)在连接过程中,时常还要加入一些系统提供的库文件代码。

经过连接后生成的可执行文件的扩展名为.exe。
计 》
4.运行
运行可执行文件的方法很多,可在C系统下执行“运行”命令。 也可以在操作系统下直接执行可执行文件。
返回
输入文件名
单击“文件”
选择“添加工程”
单击“C++ Source file”
输入源程序
单击“确定”
返回本节目录
16
1.1.3 Visual C++ 6.0集成环境
C
《 3. 编译和连接
语 言
方法一:选择主窗口菜 单栏中“编译”菜单项; 系统弹出下拉菜单,选

择“构件”菜单命令。

单击“Build”
第1章 C语言绪论
C

本章导读

本章通过C程序实例分析着手,使读者从宏观上整体把

VC程序调试.

VC程序调试.

VC程序调试VC程序调试调试是一个程序员最基本的技能,其重要性甚至超过学习一门语言。

不会调试的程序员就意味着他即使会一门语言,却不能编制出任何好的软件。

一、VC程序调试方法 VC的调试功能:首先,再次强调要用Go命令运行一个将要调试的程序;如果要中止调试状态下的运行程序可以点击Stop Debugging命令,还可以通过Break选项以可恢复方式中断调试程序的运行流程(用Restart选项可以重新开始运行程序);Step Into选项表示每次只执行一行语句(单步执行),但如果当前代码是调用一个函数,那么Step Into表示进入该函数,全部函数语句执行完后返回,而Step Over则是跳出这个函数;Step To Cursor 选项表示程序将执行到光标所在的可执行语句行上;在调试多线程程序时,可以在线程函数或主应用程序线程中设置断点,还可以用Break选项结束线程后用Threads选项查看运行线程列表,也可以选择悬挂和恢复每个线程;在设置断点后,在VC "查看"菜单的"调试窗口"中可以查看变量、内存、调用堆栈、寄存器以及反汇编语句。

在程序中设置断点的方法是,点击要设置的代码行并点击设置代码的工具栏按钮,会出现在代码行最左边的一个小黑点即是断点标志,这时再选Go 程序会在执行到端点处停下来,如果要继续执行可以再选Go。

通过选择VC"工具"菜单下的"源浏览器"可以生成一个.BSC文件,使用浏览器可以从中发现多种信息:程序中任何一个变量、函数、类或宏在何处定义及引用;可以列出所有声明的函数类、变量、宏;可以发现调用一个指定函数的所有函数;可以找到一个指定类的派生来源或者它派生出哪些类。

在使用微软程序开发库MSDN时,我们会发现其中的VC示例经常采用看似多余的ASSERT语句,其作用就是使程序具有"维护"性。

C语言第1章vc


P3
main( ) { int a,b,x; double c,y,z; c=4.0; y=sqrt(c); a=10; b=20; x=mysum(a,b); z=x+y; printf("z=%lf\n",z); }
int mysum( int m, int n ) { int k; k=m+n; return k; } 程序的运行结果是: z=32.000000
文件math.h
main函数
…… c=4.0; y=sqrt(c); a=10; b=20; x=mysum(a,b); z=x+y; … …

② ④ ⑤ ⑥ ⑨ ⑧ ⑦

sqrt函数 …… 其它函数 ……
mysum函数
……
本课程的目标
掌握解决简单问题的步骤 用C语言能够实现如下程度的功能
第1章 C语言基础知识
1.1 C语言概述
1.2 简单C程序与上机步骤 1.3 数据类型 1.4 常量与变量 1.5 运算符和表达式
例题链接
例题链接
例1.1 例1.2 例1.3 例1.4
例1.5 例1.8
例1.6 例1.9
例1.7 例1.10
例1.11
例1.14
例1.12
例1.13
例1.17
例1.15
12.300000 12345.669922 12345.670000

1.4.4 字符型常量与变量 1.字符型常量
P13
常规字符 用单引号括起来的单个字符 转义字符 用\开头的字符序列

字符常量按其ASCII码值参加整数运算
【例1.11】将常规字符按不同格式输出。 #include <stdio.h> main( ) a-97 A-65 { printf("%c-%d,%c-%d\n",’a’,’a’ ,’A’, ’A’); printf("%d,%c\n",’a’+1,’A’+1); 98 B printf("%d\n",’a’-’A’); 32 }

VC++调用C#生成DLL的两种方法

VisualC、delphi或者vb等编程语言来编写的DLL文件,在编译完成以后,产生DLL文件[wen jian]已经是一个可以直接供计算机使用的二进制文件,而Visual c#生成的DLL不是独立运行的程序,是某个程序的一个部分,只能由所属的程序调用,用户不能也不需要打开它,Visual C#编译器生成的托管代码虽然也是二进制文件,但不是可以直接供计算机使用的原始代码,实际上是一种中间语言(IL)代码,需要经过"下一代窗口服务"( Next Generation Windows Services,简写为NGWS ) runtime的即时编译器(即JIT)进行编译。

用Visual C#生成的DLL文件已经和以前的DLL文件有了本质上的区别。

用Visual C#生成的DLL文件在程序设计中更多的表现为一种类(Class)或者类库(Class Library)。

如果想在vc++的非托管代码中调用已经用VC#生成的托管的DLL,从两个方向进行调整可以产生两种办法:(visual studio 2008)(下面方法都是对于同一平台下,即C#跟VC++都是在windows 平台下)一、对VC++的环境中进行修改使其支持托管代码:vc++调用端增加公共语言运行时【clr】的支持以执行C#的程序:【解决方案】 ->【 Properties】(右键)-> 【Configuration Properties】(展开左树) -> 【General】(打开子节点) -> 【Common Language Runtime support】(选中选项) ->【Common Language Runtime support(/clr)】(选中)OK,现在就可以引入托管的动态连接库来用了,不过在调用时还是得注意语法(new->gcnew,....),例如下:#include "stdafx.h"#using "SmartDeviceDLL.dll"using namespace SmartDeviceDLL;int _tmain(int argc, _TCHAR* argv[]){printf("1111111111111\n");SmartDeviceDLL::ICalculator ^pICalc= gcnew SmartDeviceDLL::Class1();long lResult =0;lResult=pICalc->Add(5,10);wprintf(L"the result is %d\n",lResult);printf("222222222222222222\n");char c;scanf("%c",&c);return 0;}二、C#生成DLL端编译成COM接口,供VC++以托管格式调用(命令的运行都是在visual studio command prompt (命令窗口)中)1.新建一个C#的动态连接库(在模板,下单击类库):using System;using System.Linq;using System.Collections.Generic;using System.Text;namespace SmartDeviceDLL{public interface ICalculator{int Add(int Number1, int Number2);}public class Class1: ICalculator{public int Add(int Number1, int Number2){return Number1 * Number2;}public static int TestMethod(String s){Console.WriteLine("Managed assembly: [0]", s);return s.Length;}}}2.为程序集创建一个强命名的类库,并在AssemblyInfo.cs文件中用AssemblyKeyFile属性指向它:1)、使用强命名工具(Strong Name Utility)产生密钥对:sn -k MyKeyFile.snk2)、在AssemblyInfo.cs文件中用AssemblyKeyFile属性指向它:即在项目的文件AssemblyInfo.cs中将[assembly: ComVisible(false)]用以下内容替换:[assembly: ComVisible(true)][assembly: AssemblyDelaySign(false)][assembly: AssemblyKeyFile("MyKeyFile.snk")] //指向刚生成的文件(可用无汉字的绝对路径)3)、重新编译,产生的程序集就是经过签名后的程序集了3.把生成的库文件加入全局程序集缓存(Global Assembly Cache, .NET [Compact]Framework支持一个工具,通常位于:C\Wndows\Assembly下)以便可以从任何COM 客户端激活它,可以使用工具GACUtil.exe,指定/i命令开关将一个程序集安装到GAC中,同样可以使用/u命令开关将一个程序集从GAC中卸载。

使用VC++6.0编程

使用VC++6.0编程
使用Microsoft Visual C++ 6.0
VC6是Microsoft Visual C++ 6.0版的简称 VC6是微软开发工具套装Visual Studio中的 C/C++开发工具 目前最新版本为MS Visual C++2008 使用VC6,意味着一个微软的C/C++编译 器,一个统一的Visual Studio开发环境,一 套Windows应用开发类库MFC以及相应的 Windows API程序库
VC6中常用的菜单和按钮 File Compile, Build, Rebuild All, Clean Build Start Debug, Execute Build Start Debug Go, Step Into
30
打开VC6的工程
前面我们的程序有一个 问题:我们自己的输出 hello world!与VC的输 出“press…”连接在一起 能否让他们放在不同的 行,看起来要更清晰明 显呢? 我们可以在输出后紧接着执 行一个令光标换行的动作 让我们来修改刚才的程序
2
使用Microsoft Visual C++ 6.0
VC6为大型C/C++程序开发而设计,这些 程序可能会含有多个头文件(.h、hpp)和 实现文件(c、cpp、cxx),因此VC6提供 了一套管理机制——工程(Project .dsp) 和工作环境配置(Workspace .dsw) 工程用于管理各个头文件,实现文件之间 的顺序关系,编译选项等
13
Files 文件名
C++ Source File 文件位置

VC++简介

VC++是微软公司开发的一个集成开发环境,换句话说,就是使用c++的一个开发平台.VC++是Windows平台上的C++编程环境,学习VC要了解很多Windows平台的特性,并且还要掌握MFC、ATL、COM等的知识,难度比较大。

Windows下编程需要了解Windows的消息机制以及回调(callback)函数的原理;MFC是Win32API的包装类,需要理解文档视图类的结构,窗口类的结构,消息流向等等;COM是代码共享的二进制标准,需要掌握其基本原理等等。

VC是一个主流的开发平台,VC++不是一门语言,可以把C++看作为一种“工业标准”,而VC++则是某种操作系统平台下的“厂商标准”,而“厂商标准”是在遵循“工业标准”的前提下扩展而来的。

VC++是在Windows平台下开发VC++应用程序,VC++应用程序的开发主要有两种模式,一种是WIN API方式,另一种则是MFC方式,传统的WIN API开发方式比较繁琐,而MFC则是对WIN API再次封装,所以MFC 相对于WIN API开发更具备效率优势,但为了对WINDOWS开发有一个较为全面细致的认识,笔者在这里还是以讲解WIN API的相关内容为主线。

首先VC是一个软件(IDE集成开发环境)(编译、编辑、调试)WindowsSDK(软件开发工具)VC的灵魂:MFC(微软基础类库)ATL(ActiveX模板类库)其他的SDK,如OpenGL,DirectX,ActiveMoive,DrawDib(WinG)VC需要掌握的东西:1、养成一种严谨的软件开发习惯,熟悉软件工程的基本原则。

2、C语言基础3、C++最基本内容:类、继承性、封装性、多态性的概念4、如何用向导建立一个程序框架5、设计菜单6、设计工具条7、设计和使用对话框,熟悉最常用的对话框控件:按钮、静态文本、编辑框等8、知道怎样新建类、成员函数、成员变量、消息处理函数。

9、了解最常用的Windows消息:如WM_PAINT(重绘窗口),鼠标按下、弹起、移动,初始化对话框等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

VC C++程序打包过程
一、打包软件前的准备工作
1、VC2010专业版软件
2、Depends软件(/【用途是检测软件的依赖dll文件】)
3、要打包的C++程序
二、准备软件所需要的东西
1、首先打开depends.exe的程序,找到菜单中的file—>open 找到
用C++编写,使用VC2010运行后的可执行文件(一般文件在debug或者是release 文件夹下,需要注意的是,使用depends所找到的文件对于在VC下debug和release 运行时所找到的所需文件是不一样的)
2、例如我上面用VC在debug平台下运行所需要的dll文件,这些文件文件的所需路径
上图有显示,下面要做的是在所对应的文件夹下找出所需要的文件,然后放入到统一的文件夹中,后面会用得到。

三、软件的打包过程
1、运行VC软件,文件→新建→项目,在已安装的模板中找到找到安装和部署,选择
visual studio installer→双击安装项目→找到解决方案资源管理器→找到项目(994test)→单击属性属性窗口→在公司名称中添加自己信息(公司的英文简称)→把Removepreviousversions的属性设置为true.
2、然后找到文件系统,添加system文件夹,双击system文件夹在右边的,单击鼠标
右键,在鼠标弹出来的添加菜单中选择文件。

在弹出的选择对话框中添加软件运行时所需要的dll文件。

也就是前面说的用depends程序找到的dll文件。

添加dll文件完毕后,右键dll文件,在弹出的对话框中选择属性窗口中分别把register、sharedlegacyfile改成vsdrfCOM和true选项。

3、返回到文件系统,在文件系统中鼠标邮件,添加所需要的文件夹,例如bin(运行
程序的文件夹)、res(图标文件夹)、mscomm32(com口的dll文件,在system文件夹下也要添加)。

双击bin文件夹,在右面的空白地方单价鼠标左键在弹出的菜单中选择添加 文件,在添加对话框中添加软件运行的*.exe文件和软件卸载的.exe(在window/system32/msiexec.exe),软件运行的.exe文件一般在VC创建项目下的debug 文件夹或者是release文件件下,卸载的.exe文件在window/system32下(可以把msiexec.exe文件重命名为Uninstall.exe)。

在自己创建的文件夹中添加软件所需的必要文件,添加方法如bin文件夹的添加方法,不再过多叙述。

4、返回文件系统,右键文件系统中的用户桌面,在弹出的窗口中选择属相窗口,在用
户桌面的属性窗口中把alwayscreate属性改为true。

在用户桌面的空白地方右键创
建新的快捷方式,在弹出的对话框中找到添加进去的软件运行程序(*.exe).如果需要为软件添加一个漂亮的图标,可以在属相窗口中的icon中选择自己的个性图标。

5、返回文件系统,在用户的”程序”桌面中添加Uninstall.exe文件,方法如用户桌面中
的快捷方式添加。

添加完成后在Uninstall.exe的属相窗口中,在arguments中写入以下数据/x {proudctcode},/x与{proudctcode}中间有空格,proudctcode在解决方案资源管理器的属相窗口中查找。

6、以上操作都完了就里成功不远了,还差关键的最后一步。

找到解决方案资源管理器,
右键单击项目属性,在弹出对话框中选择系统必备,在弹出的对话框中添加相关的组件,例如.netframework4.0、VC运行库和windows install3.1等。

在指定系统必备组件的安装位置中选择第二个(从与我的应用程序相同的位置下载系统必备组件)。

四、软件序列号的生成
1、准备工作,要想生成序列号,首先要准备以下几个文件(下载地址
/support/additional_downloads/runtime.asp),需要两个下载的包,都是基于.net2003版本的,分别是英文的和中文的两个。

这些文件准备好,一会有用!
2、准备好上面的文件后,回头VC2010中的解决方案处理器,找到用户界面编辑器,
打开用户界面编辑器,在用户界面中的安装→启动中添加对话框→在添加对话框中添加客户信息。

添加客户信息后鼠标右键客户信息的属性窗口,在属性窗口中把showserialnumber的选项设置为true. Serialnumbertemplate(序列号的算法)后面的算法自己定义,具体参考这个网址下面的网址。

(/en-us/library/w3xwh311(VS.80).aspx)
3、返回到解决方案资源管理器界面,找到软件打包的项目,右键项目添加 合并模块,
找到前面现在的那些*.msm文件,把他们都拷贝到(C:\Program Files\Common Files\Merge Modules)这个文件夹中,然后选择新添加进来的.msm文件,打开并合并它们。

4、
5、在检查到的依赖项中找到Crystal_regwiz2003.msm,右键鼠标属性在
mergemoduleproperties的下拉中找到license Key中输入序列号(注意事项:里面的序列号要以前面那个shownumbertempleta中的算法计算来制定相应的序列号)。

6、上面的工作都完成以后,就可以点击F7来生成软件啦。

五、以上步骤都完成后,及可以轻轻按下键盘上的F7生成软件包啦。

哈哈。

可以等着大功
告成的时刻到来啦。

祝大家好运!。

相关文档
最新文档