精华内容
下载资源
问答
  • 目录: 一:什么是工程? 二:什么事cpp文件? 三:工程和CPP文件的关系? ...四:添加文件影响吗?...一:什么是工程?...一个工程就是一个exe文件,能够...工程中可以多个cpp文件,但是只能产生一个exe文件。产...

    目录:

    一:什么是工程?

    二:什么事cpp文件?

    三:工程和CPP文件的关系?

    四:添加文件会有影响吗?

    五:解决办法


    一:什么是工程?

    一个工程就是一个exe文件,能够运行的是exe文件

     

    二:什么事cpp文件?

    cpp文件是没有经过编译的源代码,cpp不能直接运行

     

    三:工程和CPP文件的关系?

    工程中可以有多个cpp文件,但是只能产生一个exe文件。产生exe的过程叫做:编译+链接

     

    四:添加文件会有影响吗?

    添加文件没有错,而是因为在两个文件 里都有main函数,出现了符号表冲突,在c/c++程序中,只能有一个main函数

     

    五:解决办法

    你可以使用预编译功能来实现
    当一个程序测试完毕后,新建另一个项目运行时,#if 0和#endif将上一个程序的代码框住,然后继续写新的程序
    1.例如:test1.cpp:
    int main()
    {
        printf("hello world\n");
    
    }
    

    2.这时你想在原项目中做另一个项目你可以:test1.cpp:

    #if 0
    int main()
    {
        printf("hello world\n");
    
    }
    #endif


    3.这时将新建的cpp加入项目中:test2.cpp

    #if 1
    int main()
    {
        printf("hello vc++\n");
    }
    #endif

    这样编译的话是不会出错的
    并且一个项目中可做多个程序


    这#if ()就是一个开关

    0是关闭

    1是打开

    展开全文
  • 数字证书:从文件中读取数字证书,生成文件输入流,输入文件为c:/mycert.cer,获取一个处理X.509证书的证书工厂…… Java+ajax写的登录实例 1个目标文件 内容索引:Java源码,初学实例,ajax,登录 一个Java+ajax写的...
  • 现象:在一个工程2个带main函数的文件:InsertSort.cpp,ShellSort.cpp InsertSort.cpp 1 #include <stdio.h> 2 3 void InsertSort(int A[],int n) 4 { 5 int i,j; 6 for(i=...

    一.现象及原因

    现象:在一个工程中有2个带有main函数的文件:InsertSort.cpp,ShellSort.cpp

    InsertSort.cpp

     1 #include <stdio.h>
     2 
     3 void InsertSort(int A[],int n)
     4 {
     5     int i,j;
     6     for(i=2;i<=n;i++)
     7     {
     8        if(A[i]<A[i-1])
     9        {
    10          A[0]=A[i];
    11          for(j=i-1;A[0]<A[j];--j)
    12          {
    13             A[j+1]=A[j];
    14          
    15          }
    16          
    17          A[j+1]=A[0];
    18        }
    19     }
    20 }
    21 
    22 void InsertSort_1(int A[],int n)
    23 {
    24     int i,j,temp;
    25     for(i=1;i<n;i++)
    26     {
    27        if(A[i]<A[i-1])
    28        {
    29          temp=A[i];
    30          for(j=i-1;A[j]>temp;j--)
    31          {
    32             A[j+1]=A[j];
    33          
    34          }
    35          
    36          A[j+1]=temp;
    37        }
    38     }
    39 }
    40 
    41 int main()
    42 {
    43     int i,a[10]={5,2,6,0,3,9,1,7,4,8};
    44     InsertSort(a,10);
    45     printf("InsertSort排序后的结果是:");
    46     for(i=0;i<10;i++)
    47     {
    48        printf("%d",a[i]);
    49     }
    50     printf("\n\n");
    51     return 0;
    52 }
    View Code

    ShellSort.cpp

     1 #include <stdio.h>
     2 void shellSort(int A[],int n)
     3 {
     4     int dk;
     5     int i,j;
     6     int temp;
     7     for(dk=n/2; dk>=1;dk/=2) //用来控制步长,最后递减到1
     8     {
     9         for(i=dk+1;i<=n;i++)
    10         {
    11             if(A[i]<A[i-dk])
    12             {
    13                 A[0]=A[i];
    14                 for(j=i-dk;j>0&&A[0]<A[j];j-=dk)
    15                     A[j+dk]=A[j];
    16                 A[j+dk]=A[0];
    17 
    18             }
    19         }
    20     }
    21 }
    22 int shellSort_main()
    23 {
    24     int i,a[10]={0,5,2,6,3,9,1,7,4,8};
    25     shellSort(a,10);
    26     printf("ShellSort排序后的结果是:");
    27     for(i=0;i<10;i++)
    28     {
    29        printf("%d",a[i]);
    30     }
    31     printf("\n\n");
    32     return 0;
    33 }
    View Code

    当运行过第一个文件后,再编写并运行第二个文件时,会抛出异常。

     

    抛出异常:shellsort.obj : error LNK2005: _main already defined in insertsort.obj
                      Debug/chapter2.exe : fatal error LNK1169: one or more multiply defined symbols found

    原因:main函数重定义。注意,程序是按照一个工程为单位进行编译,每个工程只能有且只有一个main函数,也就是只有一个函数入口。

     

    那么我又想偷懒,不想再重新建立一个工程。否则每建立一个算法程序打开新的一个工程,这样做是不会死太麻烦了。那么我们可以怎样来解决呢?

    二.解决办法

    【方法一】:最笨的方法,既然说是只能允许一个main()主函数入口,那么我在之前那一个里面用/*......*/注释掉不就可以了吗?不错,这样倒是一个解决方案。

    【方法二】:从操作看来,方法一这样太麻烦了,假如有几十个文件或者更多,每次都是这样干,也太费事,浪费光阴和青春了吧?那么我们该怎么做呢?

                 (1)在编好第2个新程序之后,在工程左边fileview里工程下的source files中,选中前一个带main函数的文件,点键盘的【Delete】键,删除该文件(其实只是从工程中移除出去,  并 没有删除,您可以打开该工程目录查看,它依然存在,只是不在VC6.0中显示了,表示已经不在该工程编译范围之内)。

                 (2) 然后,执行VC6.0菜单命令“组建”→“清除”,

                 (3)再按F7或者编译快捷键,重新编译新建的C++程序。

           这样,每个cpp文件(包括已移除的前main()文件)都留在当前工程所在目录中,而每次只有一个带main函数的cpp文件存在于工程当中执行。

            【如果想恢复到原来的那个文件】:在工程左边fileview里工程下的source files中单击【右键】→选择【添加文件到当前目录】→选择需要导入到文件cpp,打开确认就可以把删除的文件导入进来。

    【方法三】:将main函数单独写在一个文件里,并通过头文件将其他文件中的函数引入进来

    如:(1)将InsertSort.cpp中的main函数重命名为普通字母

         (2)再编写InsertSort.h来声明InsertSort.cpp中的函数

         (3)新建一个带main函数的文件main.cpp,在main.cpp中引入头文件,调用InsertSort.cpp中的方法

     

    修改后的源码如下:

    InsertSort.cpp  

     1 #include <stdio.h>
     2 
     3 void InsertSort(int A[],int n)
     4 {
     5     int i,j;
     6     for(i=2;i<=n;i++)
     7     {
     8        if(A[i]<A[i-1])
     9        {
    10          A[0]=A[i];
    11          for(j=i-1;A[0]<A[j];--j)
    12          {
    13             A[j+1]=A[j];
    14          
    15          }
    16          
    17          A[j+1]=A[0];
    18        }
    19     }
    20 }
    21 
    22 void InsertSort_1(int A[],int n)
    23 {
    24     int i,j,temp;
    25     for(i=1;i<n;i++)
    26     {
    27        if(A[i]<A[i-1])
    28        {
    29          temp=A[i];
    30          for(j=i-1;A[j]>temp;j--)
    31          {
    32             A[j+1]=A[j];
    33          
    34          }
    35          
    36          A[j+1]=temp;
    37        }
    38     }
    39 }
    40 
    41 int InsertSort_main()
    42 {
    43     int i,a[10]={5,2,6,0,3,9,1,7,4,8};
    44     InsertSort(a,10);
    45     printf("InsertSort排序后的结果是:");
    46     for(i=0;i<10;i++)
    47     {
    48        printf("%d",a[i]);
    49     }
    50     printf("\n\n");
    51     return 0;
    52 }
    View Code

     

     InsertSort.h

    void InsertSort(int A[],int n);
    int InsertSort_main();
    View Code

    main.cpp

    1 #include <stdio.h>
    2 #include "InsertSort.h"
    3 void main()
    4 {
    5 InsertSort_main();
    6 //ShellSort_main();
    7 }
    View Code

     

                  (1)

     

    展开全文
  • 1. 背景在用VS编程学习C/C++...2. 解答不,VS一个项目只能有一个main()。在VS中,区分一个C++程序是通过项目区分,而不是以.cpp文件区分。3. 实例main.cpp代码:// main.cpp : 此文件包含 "main" 函数。程序执行将...

    1. 背景

    在用VS编程学习C/C++时,总会按照教科书编写多个C/C++程序。程序虽小,但却都包含main()函数。那么能否在当前项目下运行多个包含main函数的.cpp文件?

    2. 解答

    不能,VS一个项目只能有一个main()。在VS中,区分一个C++程序是通过项目区分,而不是以.cpp文件区分。

    3. 实例

    main.cpp代码:

    // main.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。

    //

    #include "pch.h"

    #include

    using namespace std;

    int main()

    {

    cout << 0 << endl;

    return 0;

    }

    main1.cpp代码:

    // main.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。

    //

    #include "pch.h"

    #include

    using namespace std;

    int main()

    {

    cout << 1 << endl;

    return 0;

    }

    8ec7b06751e1

    运行结果

    错误提示:

    1>main.obj : error LNK2005: _main 已经在 main1.obj 中定义

    1>C:\Users\Administrator\Desktop\main\Debug\main.exe : fatal error LNK1169: 找到一个或多个多重定义的符号

    4. 替代方法

    方法1:只保留待运行的.ccp文件,将其余包含main()的.cpp文件移除、删除、禁用(从生成中排除)、注释main()、修改main函数名等。

    8ec7b06751e1

    移除

    8ec7b06751e1

    禁用

    方法2:使用代码编辑器,如VSCode,Sublime Text 3等。在代码编辑器上写代码,复制到VS上编译。当然也可以在代码编辑器上搭建C/C++编译环境,直接在上面编译,推荐VS Code:搭建C/C++编译调试运行环境。

    8ec7b06751e1

    VSCode编译main.cpp

    8ec7b06751e1

    VSCode编译main1.cpp

    5. 总结

    VS虽然编译方便,但体量太大,更适用于编写大中型的项目,起码上百行代码以上。对于初学者练习编程而言属于牛刀小用。

    推荐在代码编辑器上搭建运行环境,虽然有的编译调试不太方便。

    VC 6.0(VC++6.0)、Dev C++、 Code::Blocks也能用,虽然版本看起来很老。

    展开全文
  • vc6.0工程编译报“undeclared identifier”错误。 原因: 上一步操作中在*.cpp文件里添加了行 #include"stdafx.h" 但是这行没有放在cpp文件的非空第行,这行前面还有包含其它的文件,导致前面包含的文件...

    问题:
    vc6.0工程编译报几十个“undeclared identifier”错误。

    原因:
    上一步操作中在*.cpp文件里添加了一行

    #include"stdafx.h"
    

    但是这行没有放在cpp文件的非空第一行,这行前面还有包含其它的文件,导致前面包含的文件失效。

    展开全文
  • VC6.0工程设置说明

    千次阅读 2015-12-13 14:57:15
    如果我们精于VC开发环境,我们是不是能够做得更加游刃有余呢? 先来看一下VC的处理流程,大致分为两步:编译和连接。源文件通过编译生成了.obj文件;...1. 打开工程设置对话框。左边的列表可以选择
  • VC 6.0怎么只能同时打开一个工程

    千次阅读 2012-12-25 16:18:14
    我的VC在已打开一个工程的情况下,双击另一个工程文件,就会覆盖掉(关掉)原来的工程文件。我只有每次都是先打开VC,再把工程拖进来,才能解决问题。   解决方法: 资源管理器-》文件夹选项-》文件类型-》选择dsw...
  • vc6.0 打开多个工程的方法

    千次阅读 2013-10-18 22:28:44
    VC6.0中,我们经常想打开多个工程,但是打开一个工程后再打开下一个时就会覆盖当前工程或者打不开新工程, 解决方法如下: 1、WinXP系统 (1)打开“我的电脑->工具->文件夹选项->文件类型”; (2)在 "已注册的...
  • xx.sln 配置文件 工程名字1 xx.vcxproj 配置文件 xx.vcxproj.user 配置文件 xx.vcxproj.filters 配置文件 工程名字2 xx.vcxproj 配置文件 xx.vcxproj.user 配置文件 xx.vcxproj.filters 配置文件 … 在...
  • 单个源文件往往难于检查错误,因此在程序设计时,往往是由几个人各自独立编写不同的程序,显然这些程序是不写在一起进行编译的,这时就需要建立项目工作区来完成几个独立程序的编译,具体方法如下。打开VC++6.0,...
  • 问题起源和定义 在使用VC开发时,当一个解决方案的工程数多达十个甚至上百个,因为工程设置基本是一样的,因此修改工程项目属性成了一件单调的事情。这里所说的工程属性包括输出目录、中间目录、预处理器、第三方...
  • 测试开发笔记

    万次阅读 多人点赞 2019-11-14 17:11:58
    章 测试基础 7 什么是软件测试: 7 ★软件测试的目的、意义:(怎么做好软件测试) 7 3.软件生命周期: 7 第二章 测试过程 8 1.测试模型 8 H模型: 8 V模型 9 2.内部测试 10 3外部测试: 10 验收测试:(在系统...
  • VC6.0读取Excel文件数据

    千次阅读 2018-10-11 17:39:02
    文件存储在Excel文件中,因此第步是能够在程序中方便地读取表格数据,这里用的是VC6.0 MFC。文章内容仅供参考,程序不完整。 完整的VC6.0相关程序,需要的可以下载:...
  • vc工程文件无法打开的解决方法

    千次阅读 2012-03-21 16:43:00
    vc编程中,经常遇到dsw工程文件无法打开,或者打开后看不到类和变量的问题。特别是把代码从台电脑上copy到另台电脑上以后,常常会碰到这种奇怪的问题。有时在编辑状态下也会发生成员变量或函数提示不显示的...
  • 目前没有找到太好的方法,先记录一下暂时的做法——即把当前的程序移除,再新建项。 第一步,找到对应文件 第二步,点击移除文件 第三步,移除文件,注意不要点删除,...第五步,新建一个项即可 成功解决,hhh ...
  • 【C语言】使用VC6.0创建C工程

    千次阅读 2017-12-12 18:50:29
    打开vc6.0后我们可以看到一个工作界面 点击左上角的“文件”,在下拉菜单中选择“新建” 在弹出的对话框中选择“工程”选项卡下的“win32 console application”,在右边...
  • 1、一个工程里是很多。cpp文件和。h文件的。你想,一个几十万行代码的程序不可能在一个文件里吧?这就需要分类,实现不同功能的文件就起个名字分开来写,方便查找,修改,也可以多人合作。2、。cpp一般都是定义...
  • JAVA上百实例源码以及开源项目

    千次下载 热门讨论 2016-01-03 17:37:40
    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...
  • 形象一点的,把工作空间比作一个房子,工作空间里面的工程(Project)就是这个房子的房间,所以一个工作空间是可以包含好几个工程的。房间里面又床、椅子、被子、书桌…之类的东西,这些东西好比是工程文件(....
  • 一个vs项目中,包含的多个.cpp文件中只想要运行其中的一个,更改其他.cpp文件的属性即可
  • C#基础教程-c#实例教程,适合初学者

    万次阅读 多人点赞 2016-08-22 11:13:24
    章 C#语言基础 本章介绍C#语言的基础知识,希望具有C语言的读者能够基本掌握C#语言,并以此为基础,能够进一步学习用C#语言编写window应用程序和Web应用程序。当然仅靠章的内容就完全掌握C#语言是不可能的,...
  • 方法:#include"绝对路径\头文件.h" //#include"E:\C_Test_L\C_161105\INC\Type_def.h"  方法二:#include"..\Type_def.h"  ".." ...这当前目录不是工程所在的目录,而是该文件所在的目录
  • vc对.mat文件的读取

    2021-05-23 02:20:01
    1、选VC的菜单Tools->Options,在弹出对话框中点选Directories标签,在右方的下拉菜单中选择Include files,然后在下方列表中添加($MATLAB$)externinclude;再在右方的下拉菜单中选择Library files,然后在下方...
  • VC修改C++工程名称的方法

    万次阅读 2014-04-17 23:31:50
    A工程---改名为---》工程B   建模板:   1。新建-》工程-》选Custom AppWizard.   (不选MFC AppWizard ...下一步,浏览添加要改的工程的.dsp文件:A.dsp。   4。编译,VC就生成了自定义的模板。可以从myte
  • 问题:【单选题】通常我们将Python语言程序保存在一个后缀为( )的文件中。更多相关问题谢某对某公安局以其实施盗窃为由处以15日拘留的处罚不服,向法院提起行政诉讼。该局向法院提供的证下列关于刑事诉讼中程序公正...
  • VC6创建工程

    千次阅读 2013-06-20 13:15:03
    在开始编程之前,必须先了解工程Project(也称“项目”,或称“工程项目”)的概念。工程又称为项目,它具有两种含义,一种是指... 用VC6编写并处理的任何程序都与工程有关(都要创建一个与其相关的工程),而每一个工程
  • DSP入门应该懂得57问题

    万次阅读 多人点赞 2017-08-05 16:06:35
    .DSP的C语言同主机C语言的主要区别? 1)DSP的C语言是标准的ANSI C,它不包括同外设联系的扩展部分,如屏幕绘图等。但在CCS中,为了方便调试,可以将数据通过prinf命令虚拟输出到主机的屏幕上。  2)DSP的C语言的...
  • 换了台电脑,vc6.0程序中,点击打开文件以及向工程中添加文件时,程序竟然崩溃自动退出了。 不知什么原因,安装相同的vc程序,本本竟然出现此缘故。但是这操作又是自己经常用到的,所以不得不解决。 与上...
  • 1、用vc新建一个dialog1工程。属性默认。2、insert一个dialog2,改为child。3、在dialog1中包含dialog2头文件,在一个按钮事件中显示dialog2:Cdialog2 *p = new Cdialog2(this);p->Create(IDD_Dialog2);p->...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 39,497
精华内容 15,798
关键字:

vc一个工程能有几个文件