VC++如何在一个动态链接库中调用其他动态链接库
展开全部
以VC6为例,分为静态调用及动态调用,静态调用需要提供Lib及头文件,较为简单,而动态调用使用loadlibrary、FreeLibrary 加载及释放动态库,声明函数形参列表及变量,再取得函数地址送给此变量,变量名可以当函数名调用使用。
HINSTANCE m_hLib;
//声明形参列表
typedef LONG ( *pfn_Init) (形参);
//声明变量
pfn_Init fnInit;
LONG LoadLib()
{
m_hLib = NULL;
m_hLib = LoadLibrary(_T("XXX.dll"));
if (m_hLib == NULL)
{
cout <<"LoadLibrary XXX.dll Failed" << endl;
return -1;
}
return 0;
}
//取函数地址
fnInit = (pfn_Init) GetProcAddress (m_hLib, ("Init"));
//调用
fnInit ();
void FreeLib()
{
if (m_hLib != NULL)
{
FreeLibrary(m_hLib);
}
}
您手里至少得有个头文件,否则就只能用工具查看导出函数列表了。
HINSTANCE m_hLib;
//声明形参列表
typedef LONG ( *pfn_Init) (形参);
//声明变量
pfn_Init fnInit;
LONG LoadLib()
{
m_hLib = NULL;
m_hLib = LoadLibrary(_T("XXX.dll"));
if (m_hLib == NULL)
{
cout <<"LoadLibrary XXX.dll Failed" << endl;
return -1;
}
return 0;
}
//取函数地址
fnInit = (pfn_Init) GetProcAddress (m_hLib, ("Init"));
//调用
fnInit ();
void FreeLib()
{
if (m_hLib != NULL)
{
FreeLibrary(m_hLib);
}
}
您手里至少得有个头文件,否则就只能用工具查看导出函数列表了。
Storm代理
2023-08-29 广告
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I...
点击进入详情页
本回答由Storm代理提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询