函数要求接受DWORD_PTR类型,传入是(DWORD)(LPVOID)&mciPlay,这里为什么要两次转换,能直接转为DWORD_PTR吗?

解决方案 »

  1.   

    直接转是不是(DWORD *)就行了,还是用DWORD_PTR?能一次转为什么这里要用两次转换了
      

  2.   

    你这样最终出来的是DWORD类型又不是DWORD_PTR……如果你需要的话,直接转换就可以了,如果你的文件扩展名是c而不是cpp,那么随便需要什么指针,一概转换到LPVOID就可以了,编译器再也不会骚扰你
      

  3.   

    (DWORD)(LPVOID)&mciPlay这样转的不是DWORD_PTR的吗?我一本书上看到的
      

  4.   

    除非你定义的DWORD和DWORD_PTR是一样的,否则这肯定是两个不一样的东西……你要是写(DWORD_PTR)(LPVOID)&mciPlay还差不多……虽然繁冗了一点
      

  5.   

    DWORD_PTR是系统定义的,msdn可以查到。那是书错了吗?书里面就是这样转换的,我看着也很奇怪,不知道它为什么要两次转换
      

  6.   

    书上难道就不会有错?MSDN还会错呢……