我把所有全局变量放在一个.h文件中,给所有的类访问,这个文件前面加了#pragma once
,我在VIEW和MAINFRAME两个类中都饱含了它,结果link提示重复定义,就是#pragma once不起作用,这是怎么回事?

解决方案 »

  1.   

    把编译文件都删除了,重新编译看看(build->clean)
    或者把这个文件放到StdAfx.h,然后都包含它,也要重新编译
      

  2.   

    全局变量最好定义在CPP文件中,然后在别的文件中用extern声明。
      

  3.   

    #progma once的在编译时起作用,即产生的每个.obj只包含一次这个.h文件,不保证各个.objs文件之间的重复,所以会在link多个.obj的时候报错。
      

  4.   

    在CPP中定义,在StdAfx.h文件中用Extern声明一下,在要使用的地方包含Stdafx.h即可