C# вызывает DLLMain без всякой причиныC#

Место общения программистов C#
Anonymous
C# вызывает DLLMain без всякой причины

Сообщение Anonymous »

У меня есть простая dll C++, которая используется настольным приложением C#. Внезапно, без всякой причины, приложение C# вызывает DllMian с параметром DLL_THREAD_DETACH. Приложение не запускается и не закрывается. Почему это происходит?
Функция DLL в приложении C# объявлена:
[DllImport(DllName, CallingConvention = CallingConvention.StdCall, CharSet =
CharSet.Ansi)]
public static extern int init(StringBuilder buff, StringBuilder data);

В библиотеке Dll есть DllMain с кодом на случай DLL_THREAD_DETACH:
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:
{

break;
}
case DLL_THREAD_DETACH:
{
MessageBox(NULL,"Hello from Dll", "Message",MB_OK);

break; }
case DLL_PROCESS_DETACH:
{

break; }

}

return TRUE;
}


Подробнее здесь: https://stackoverflow.com/questions/790 ... any-reason

Вернуться в «C#»