none
如何在静态函数中调用非静态函数 RRS feed

答案

全部回复

  • 调用非静态的函数需要对象的地址。你可以在线程函数参数中传递对象地址,

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful, so they will appear differently to other users who are visiting your thread for the same problem.
    Visual C++ MVP
    2010年12月10日 16:05
    版主
  • 赞楼上!

    2010年12月11日 6:01
  • 我想知道你的目的是什么?可能可以用更好的方法解决。之所以静态函数中,不能调用非静态函数的原因是由于,可能非静态成员函数中使用的成员变量没有被初始化。如果强行调用可能会有问题。
    麻烦把正确答案设为解答。
    2010年12月13日 8:27
    版主
  • 我没看明白,例如我把线程设置为静态的函数,在线程函数中调用非静态的函数: CDC *dc = GetDC(); dc->Textout(....); 输出一句话就出错. 我实在没搞明白怎样才能调用函数在内存中的地址.
    2010年12月15日 21:46
  • 你需要把DC所在的窗口句柄作为参数传进这个线程,然后通过这个句柄获得DC。


    麻烦把正确答案设为解答。
    2010年12月16日 3:11
    版主