比如用Loadlibrary导入user32库后,又用GerprocAddress得到了MessageBoxW的地址,接下来该怎么去操作,如何传递MessageBoxW的4个参数?

解决方案 »

  1.   

    强制转换成MessgeBoxW哪种类型的函数指针,然后从这个指针上直接调用。
      

  2.   

    typedef (int Msg)(HWND, LPCTSTR, LPCTSTR, UINT); //定义函数指针LoadLibrary(...);Msg *MessageBox = (Msg *)GetProcAddress(...);
    MessageBox(this->m_hwnd, "test", NULL, MB_OK); //通过函数指针调用函数
      

  3.   

    typedef int (*Func)(HWND,LPCWSTR,LPCWSTR,UINT);Func pFunc = (Func)GetProcAddress(……);
    pFunc(NULL, L"OK?", NULL, MB_ICONQUESTION);应该是这个样子吧。
      

  4.   

    typedef int (callback*Func)(HWND,LPCWSTR,LPCWSTR,UINT);
    Func pFunc;
    pFunc = (Func)GetProcAddress(XXX,XXX);
    pFunc(NULL, "TEST", NULL, MB_OK);