问题1:建了个窗口,然后新添加了个窗口,加了OnInitDialog(),然后直接在OnInitDialog()里面启动一个线程,我在线程里面需要用到一个变量int igIsCopyOver。我在新添加窗口的.h文件里面定义了下int igIsCopyOver。但是编译的时候,却说我没有定义,搞不懂原因。
问题2:我在stdAfx.h里面定义变量int igIsOK。 然后在某个线程里面用到了这个变量,但是呢编译却通不过,说我没有定义这个变量。在Release下可以编译通过,Debug不可以。
上面2个问题可能的原因是什么呢? 大虾看看。

解决方案 »

  1.   

      
    但是我Debug下编译通不过。。记得以前是把Link里的Fouce File Output这个选项勾上就可以。但是这次不知道怎么不行。 
      

  2.   

    clean 然后 rebuild all~~
      

  3.   

    像你这么描述的,release的也不能编译过,应该是你没再重新编译
    把那个变量定义成类的public的,然后线程把窗口this指针传进去
      

  4.   

    建议不要再.h头文件中定义全局变量,这样如果多个文件包含该头文件,就会有变量重定义的错误。最好定义放在.cpp中,然后头文件中extern 声明
      

  5.   

    然后直接在OnInitDialog()里面启动一个线程,我在线程里面需要用到一个变量int igIsCopyOver。我在新添加窗口的.h文件里面定义了下int igIsCopyOver这个要看你的线程函数申明成全局的还是类的static类型的,如果是static类型的,只能用static成员变量,所以你定义了int igIsCopyOver,也没有办法使用。问题1和问题2应该差不多是一个原理。
      

  6.   

    不要在头文件中定义全局变量,直接在用到的.cpp文件中定义,应该就没有错误了