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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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