在写好DLL之后,开发伙伴就可以使用其中的函数。但是当这个DLL随产品发布之后,如何防止其他人(例如竞争对手)使用我的DLL库呢?

解决方案 »

  1.   

    DLL中只有一个函数接口,如RunFunc(...);只有在正确输入密码后,RunFunc中的其它功能才允许使用:
    RunFunc( _FUNC_LOGON_, password );
    ...
    RunFunc( _FUNC_OTHER_,... );
      

  2.   

    BOOL APIENTRY DllMain( HANDLE hModule, 
                           DWORD  ul_reason_for_call, 
                           LPVOID lpReserved)
    {
        switch (ul_reason_for_call)
        {
        case DLL_PROCESS_ATTACH:
            break;
        case DLL_THREAD_ATTACH:
            //在这里调用你的RunFunc(...);
            //如果没有通过RunFunc(...)的验证就 return FALSE;
            break;
        case DLL_THREAD_DETACH:
            break;
        case DLL_PROCESS_DETACH:
            break;
        }    return TRUE;
    }
      

  3.   

    不好意思,应该是这样:
            .
            .
            .
        case DLL_PROCESS_ATTACH:
        case DLL_THREAD_ATTACH:
            //在这里调用你的RunFunc(...);
            //如果没有通过RunFunc(...)的验证就 return FALSE;
            break;
            .
            .
            .