Ошибка с apientry dllmain

Я пытаюсь создать файл *.dll в Borland C++ 5.02, у меня есть проблемы с этой функцией

BOOL APIENTRY DllMain( HANDLE hModule, 
                       DWORD  ul_reason_for_call, 
                       LPVOID lpReserved
                     )
{
    return TRUE;
}

Я пытаюсь скомпилировать свой проект, но компилятор показывает ошибку. Любые ошибки с этой функцией или этот компилятор имеют другой стиль типа с другим компилятором?

2 ответа

Если вы установили примеры для BC5.02, посмотрите в BC5\EXAMPLES\WINDOWS\DLLDEMO. Точка входа DLL определяется как:

// Every DLL has an entry point LibMain || DllEntryPoint
// and an exit point WEP.
#if defined(__FLAT__)
BOOL WINAPI DllEntryPoint( HINSTANCE hinstDll,
                           DWORD fdwRreason,
                           LPVOID plvReserved)
#else /* not flat model  */
int FAR PASCAL LibMain( HINSTANCE hInstance,
                        WORD wDataSegment,
                        WORD wHeapSize,
                        LPSTR lpszCmdLine )
#endif /* __FLAT */

Если это функция в стиле a c::

#define WINAPI __stdcall

extern "C" BOOL APIENTRY WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
{
    return TRUE;
}

если функция стиля C++::

BOOL APIENTRY WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
{
    return TRUE;
}
Другие вопросы по тегам