MFC-GetProcAddress获取动态链接库中函数的地址

发布时间 2023-05-08 15:30:50作者: 天子骄龙

 

    HMODULE hmodule=::GetModuleHandle(_T("kernel32.dll"));//获取动态链接库的模块句柄
    
    typedef DWORD(*p)(void);//声明函数指针数据类型
    
    char ch[] = "GetCurrentThreadId";
    //【特别注意:这个函数名必须是ANSI的char类型】
        
    p f=(p)::GetProcAddress(hmodule,ch);// 获取动态链接库中函数的地址
    /*
    参数1:HMODULE  动态链接库的模块句柄
    参数2:LPCSTR   函数名
    返回值:如果函数调用成功,返回值是DLL中的输出函数地址。
            如果函数调用失败,返回值是NULL
    */

    DWORD dwThreadId = f();
    CString str1;
    str1.Format(_T("当前线程ID=%d\r\n"), dwThreadId);
    OutputDebugString(str1);