譬如这样子的——
aaaDlg.h
class aaaDlg
{
 public:
 static void bbb();
};aaaDlg.cpp
#include "aaaDlg.h"
void aaaDlg::bbb()
{
 m_grid.ShowWindow(SW_SHOW);//变量m_grid对应一个FlexGrid的ActiveX控件
}build后有error C2228:left of '.ShowWindow' must have class/struct/union type,去掉那个static后正常!
这是为什么咧?

解决方案 »

  1.   

    static成员函数不能调用非static的变量。
      

  2.   

    我信你
    但为什么不是 illegal call of non-static member function 呢?还有,我在ccc.cpp将有一个
    void CcccButton::OnMouseMove
    {
     aaaDlg::bbb
    }
    要怎么写,才能避免 static 和 non-static 犯错呢?GG不要卖呆了,帮我看看吧!
      

  3.   

    如果改成 aaaDlg::bbb()
    又会有   error C2143: syntax error : missing ';' before '.'
      

  4.   

    static成员函数不能调用非static的变量。
      

  5.   

    虽然我菜,但关于后面加';'我还是知道的 :(可能是因为边洗脸边敲,更正一下:error C2143: syntax error : missing ';' before '.'
    出现在aaaDlg.bbb(),
    不是aaaDlg::bbb()
      

  6.   

    error C2143: syntax error : missing ';' before '.' 
    之类的错误除了笔误,大多都是没有include相应的文件造成的。还有就是{可能布匹配,或者前一句的语法有问题,编译器当做其他意思解释了,后面的解释不通了,编译器才报错。
      

  7.   

    谢谢指教,不过呢——   1.已经在ccc.cpp里加 #include "aaaDlg.h" 了
       
       2.成员函数 CcccButton::OnMouseMove 里就加了这么一句,没有“前一句”
     不大可能{不匹配,或者前一句的语法有问题