1、动态库导出函数的查看:
使用Vc++自带的Depends工具进行查看,但是只能看到函数的名字,具体的函数参数及返回值看不到,所以要把动态库导出函数声明的头文件(.h文件)打包给<<开发者>> 。
2、新建DLL工程:
大家在新建工程向导过程中,不要选择 “使用MFC” 选项,如果选上的话,会把DLL变为MFC规则DLL,就是我们上节课讲的第二种动态链接库。
3、DLL程序入口点函数:
CUI控制台程序(不是DOS):main
GUI用户界面程序:WinMain
DLL程序入口点函数:DllMain,注意:大小写是区别的(仅导出资源的DLL可以没有DllMain函数)。为大家讲解下具体的参数的应用。
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
return TRUE;
}
①hModule参数:指向DLL本身的实例句柄;
②ul_reason_for_call参数:指明了DLL被调用的原因,可以有以下4个取值:
■DLL_PROCESS_ATTACH:
当DLL被进程 <<第一次>> 调用时ÿ
使用Vc++自带的Depends工具进行查看,但是只能看到函数的名字,具体的函数参数及返回值看不到,所以要把动态库导出函数声明的头文件(.h文件)打包给<<开发者>> 。
2、新建DLL工程:
大家在新建工程向导过程中,不要选择 “使用MFC” 选项,如果选上的话,会把DLL变为MFC规则DLL,就是我们上节课讲的第二种动态链接库。
3、DLL程序入口点函数:
CUI控制台程序(不是DOS):main
GUI用户界面程序:WinMain
DLL程序入口点函数:DllMain,注意:大小写是区别的(仅导出资源的DLL可以没有DllMain函数)。为大家讲解下具体的参数的应用。
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
return TRUE;
}
①hModule参数:指向DLL本身的实例句柄;
②ul_reason_for_call参数:指明了DLL被调用的原因,可以有以下4个取值:
■DLL_PROCESS_ATTACH:
当DLL被进程 <<第一次>> 调用时ÿ