本人刚刚接触编程,发现C++中有很多地方用到强制转换,突如其来,似乎很难掌握,尤其是在Windows程序设计中。例如下面的语句:UINT MutexThread(LPVOID pParam)
{
    HWND hWnd = (HWND)pParam;
    ... ...
}请问,哪些量之间可以进行强制类型转换?请详细说明,谢谢。

解决方案 »

  1.   


    UINT MutexThread(LPVOID pParam)
    {
        HWND hWnd = (HWND)pParam;
        ... ...
    }
    这应该是线程函数,pParam一般是创建的时候传下来的HWND的指针,其实它原本就是HWND,只是现成函数一定要定义成LPVOID ,所以要强制一下
      

  2.   

    LPVOID:   A 32-bit pointer to an unspecified type.
    typedef void far            *LPVOID;
    LPVOID:长void型指针,void *指针可与其他型指针强制转换。
      

  3.   

    任何指针都可以隐式转换为void*而void*可以强制转换为任何指针。关于C++的强制转换,里面的学问可大了,不是一篇文章就可以说清的。看一下C++Primer的相关内容,讲的很清楚。