我做了一个DLL,我希望这个DLL文件在有多个程序需要调用的时候,只有一个程序可以成功调用这个dll文件,其他的都无法调用。换种方法说,我希望这个DLL文件在内存中只有一份拷贝 请问如何实现呢?之前别人的答复:
BOOL WINAPI DllMain(
HANDLE hinstDLL,
DWORD dwReason,
LPVOID lpvReserved
);
dwReason值是DLL_PROCESS_ATTACH时做判断是第二次调用就返回FALSE; 能不能具体点怎么做判断?怎么做判断是第二次调用?
BOOL WINAPI DllMain(
HANDLE hinstDLL,
DWORD dwReason,
LPVOID lpvReserved
);
dwReason值是DLL_PROCESS_ATTACH时做判断是第二次调用就返回FALSE; 能不能具体点怎么做判断?怎么做判断是第二次调用?
{
if (g_Call)
return FALSE;
else
g_Call = true;
}
#pragma data_seg("Shared")
BOOL IsOne=FALSE;
#pragma data_seg()
if (m_hMutex == NULL)
{
// m_hMutex不存在,表示没有其它实例在运行,创建一个m_hMutex
IsFirst = TRUE;
m_hMutex = CreateMutex (NULL, TRUE, strClassName) ;
}
else
{
IsFirst = FALSE;
}