死锁的时候,用adiplus等生成dump,然后查看那个时候的线程,内存等数据

解决方案 »

  1.   

    程序开始调用多线程的CoInit之后,GetOpenFileName会有点问题,就是在XP下没有我的电脑。。不知道会不会有别的问题
      

  2.   

    我明天看看 怎么加那个日志 看看数据, 从数据 怎么分析死锁的原因?... GetOpenFileName 毕竟是系统封装好的的啊?.
      

  3.   

    GetOpenFileName是Shell的API,需要STA
    初始化的时候用OleInitialize,不要手动初始化COM
      

  4.   

    你的意思是 我只需要调用OleInitialize(NULL)就可以了? 没有必要调用coinitialize(NULL) 是吧?
    如果GetOpenFileName不能用了,是说明shell 有问题了吗?
      

  5.   

    OleInitialize(NULL)自己调用coinitialize
    你装了支持文件对话框的shell扩展的话,也可能会导致文件对话框异常。
      

  6.   

    追问!...
    我写了一个demo  初始化和我的工程是一样的,但是用GetOpenFileName 是可以运行的。 为什么麽尼?.
      

  7.   

    OPENFILENAME有个进程句柄,设为DLL进程的句柄试试