我要在不同的类之间传递数据,是不是只有把这个变量定义成全局变量,然后用AfxGetApp()->调用它??但总是出Debug Assertion的错误
File:Winocc.CPP 
Line:345
.....
ASSERT(m_pCtrlSite != NULL);    // not an OLE control (not yet, at least)怎么解决这个错误?
或者有别的方法?

解决方案 »

  1.   

    如果你定义为取全局变量,只需在需要的地方用extern声名即可
      

  2.   

    如果把变量在你的C*App类中定义,就可以通过通过AfxGetApp()获取C*App的指针,这样就可以调用它的变量了.如果是全局变量,这不需要用这个函数调用它
      

  3.   

    我猜 你的程序 方法同名了
    你可以在外面 class CYourApp;
    ((CYourApp*)AfxGetApp())->Method();
      

  4.   

    AfxGetApp()的返回值是指向theApp的指针,与全局变量无关。
      

  5.   

    我试过了,如果用EXTERN的话,会有Lnk2001的错误,
    unresolved external symbol "float *  abcde" (?abcde@@3PAMA)
    不知道错在哪里??
      

  6.   

    首先保证你的变量是全局变量,再把你写的extern贴出来看看。
      

  7.   

    to 2i3i4i,在AbcProject.h中,
    extern float output[22];
    在AbcProject.cpp中,
    float output[22];
    其他用到output[22]数据的文件就include"AbcProject.h"
    这样就会有鏈接的错误。
      

  8.   

    你好像正好是写反了吧。最方便好用的方法:在Stdafx.cpp中加float output[22];
    在Stdafx.h中加extern float output[22];