1、CDC dc;
.....
x(dc);2、CDC *pDC = NULL;
....
x(pDC);
为什么1出错,不能传递  2正确

解决方案 »

  1.   

    就你所写的这个看不出什么,函数x的原型又不知道,不过既然1出错,而2正确,可能是函数2的参数要求一个CDC指针而不是一个CDC对象。
      

  2.   

    ..这得看x的参数形式是什么样啊,
    从你的说法来着x(CDC * ),所以1错2对.
      

  3.   

    请lz提供x函数原型??参数为CDC的指针??
    返回类型 x(CDC* pDC);????
      

  4.   

    1、CDC dc;
    .....
    x(&dc);
      

  5.   

    1、CDC dc;
    void x(CDC dc);
    .....
    x(dc);
    时就出错2、CDC *pDC = NULL;
    void x(CDC *pDC);
    ...
    x(pDC);
      

  6.   

    void DrawAlarm(CDC dc);
    DrawAlarm(dc);
    错误:
    1>d:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxwin.h(963) : error C2248: “CObject::CObject”: 无法访问 private 成员(在“CObject”类中声明)
      

  7.   

    你这种用法不正确。
    改成DrawAlarm(CDC*)
      

  8.   

    回复:oldn_CC_bird
    为什么不正确啊  为什么一定要用指针啊
      

  9.   

    你这个是值传递的方法,传类对象都应该传指针或引用才可以,就像你看到的你直接传对象在mfc中编都编不过..
    当然即便是编译通过了,运行起来也得不到你想象中的效果
      

  10.   

    请lz提供x函数原型??参数为CDC的指针??
    返回类型 x(CDC* pDC);????