Compartilhar via


Uma DLL da MFC pode criar a vários segmentos?

Exceto durante a inicialização, uma DLL da MFC com segurança criemos vários threads, desde que ele usa o thread do Win32 (TLS) de armazenamento local funciona como TlsAlloc para alocar o armazenamento local de segmento. No entanto, se uma DLL da MFC usa __declspec(thread) para alocar o armazenamento local de segmento, o aplicativo cliente deve estar vinculado implicitamente para a DLL. Se o aplicativo cliente explicitamente links para a DLL, a chamada para LoadLibrary não será carregado com êxito a DLL. Para obter mais informações sobre a criação de vários segmentos dentro de DLLs do MFC, consulte o artigo do Knowledge Base, "PRB: Chamar LoadLibrary () para carregar uma DLL de TLS estáticos" (Q118816).

Uma DLL da MFC que cria um novo thread MFC durante a inicialização irá parar de responder quando ele for carregado por um aplicativo. Isso inclui sempre que um segmento é criado chamando AfxBeginThread ou CWinThread::CreateThread em:

  • O InitInstance de um CWinApp-derivado do objeto em uma DLL regular.

  • Um fornecido DllMain ou RawDllMain função em uma DLL regular.

  • Um fornecido DllMain ou RawDllMain função em uma DLL de extensão.

Para obter mais informações sobre a criação de threads durante a inicialização, consulte o artigo do Knowledge Base, "PRB: Não é possível criar um Thread MFC durante a inicialização da DLL" (Q142243).

Consulte também

Conceitos

Perguntas freqüentes sobre a DLL