对对,我也遇到了这种问题,请高手一并解答
我在线程控制函数中调用一些外部函数就出错了
比如SetForegroudWindow(),出错提示说不能没参数
可是有几个函数在外面用都很好的,写入线程控制函数就出错
如何解决呢?[email protected]

解决方案 »

  1.   

    最好不要使用全局变量。其实一个参数已经足够了,因为这个参数可以是一个指针,而这个指针可以指向一个任意大的结构,难道还不够用吗?
    至于访问全局变量会出错,一般也不至于,除非你访问的是指针,而且还有其它线程正在修改它。当然比如你现在访问的是指针链表,而且其它线程有可能同时在做插入删除之类的操作,出错的可能性就大了。
    ximuwa的问题是混淆了MFC和API函数,需要好好理解一下c++和MFC
      

  2.   

    inside vc++中不是说尽量不要传递指针吗,说指针是一个临时对象,要传一个win32的句柄比较安全……
    对了,工作者线程一般与主线程怎么通讯?光是传入的那个参数不够啊,
    高手帮帮忙!!!谢了!
      

  3.   

    肚子说得很对,inside vc++上说的是不要传递窗口指针,而对于一般的c++结构指针是很好的解决参数传递的"带宽"问题,比如,你现在需要传四个参数的话,而线程函数只能传一个参数,所以,你就把这四个参数定义到一个结构里,然后吧这个结构的指针传给线程函数,这时候要注意变量的作用域的问题了,所以建议使用new,动态生成该结构,得到该结构的指针.然后在县城函数里吧该动态生成的结构delete掉.至于用全局变量,那在当同时有几个统一县城在执行时就会出错.例如,对于服务器端的监视线程.
      

  4.   

    与ximuwa(西木瓦) 一起听高手讲解!