dll可以只运行一次的函数位置,例如下面的FFmpeg使用。
BOOL WINAPI DllMain(
DWORD fdwReason, // reason for calling function
LPVOID lpReserved) // reserved
{
// Perform actions based on the reason for calling.
switch (fdwReason)
{
case DLL_PROCESS_ATTACH://当DLL被初次映射到进程的地址空间中时
av_register_all();//注册所有文件格式和编解码库
avformat_network_init();//初始化网络功能
break;
case DLL_THREAD_ATTACH://一个线程正在被创建
break;
case DLL_THREAD_DETACH://线程终结
break;
case DLL_PROCESS_DETACH://这个DLL从进程的地址空间中解除映射
avformat_network_deinit();//去初始化网络功能
break;
}
return TRUE; // Successful DLL_PROCESS_ATTACH.
}