BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fwdreason, LPVOID lpvReserved)
{
        return 1;
}在我写DLL的时候是不是可以不理会它,直接写我自己的函数呢?

解决方案 »

  1.   

    看需要,大部分时候不用管它,有的时候你需要用hinstDLL
      

  2.   

    如果DLL是一个类,那么这个函数相当于构造函数+析构函数
      

  3.   

    每次你开始调用这个DLL的时候,这个函数就执行一次,可以用来初始化一些参数和加载资源;
    当你释放这个DLL的时候,这个函数也会被执行一次,可以用来施放一些资源;
    你可以加一个标记,用来控制是加载还是释放;
    如果你不做上面的处理,这个函数可以不用管它。
      

  4.   

    BCB自动生成的,多半不用管,不能少 return 1;
      

  5.   

    看VC里面的:BOOL APIENTRY DllMain( HANDLE hModule, 
                           DWORD  ul_reason_for_call, 
                           LPVOID lpReserved
     )
    {
        switch (ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:
    case DLL_THREAD_ATTACH:
    case DLL_THREAD_DETACH:
    case DLL_PROCESS_DETACH:
    break;
        }
        return TRUE;
    }
    都是一样的。
      

  6.   

    楼上正解。假如你希望自己处理什么,可以在相应的case处理,然后返回false