¿Cómo puedo establecer un punto de entrada para un dll

Primero pensé en el punto de entrada en dlls DLLMain pero luego, cuando trato de importarlo en C #, recibo un error de que no se encontró el punto de entrada Aquí está mi código:

#include <Windows.h>

int Test(int x,int y)
{
    return x+y;
}

BOOL APIENTRY DllMain( HMODULE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
                     )
{
    switch (ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:
        MessageBox(0,L"Test",L"From unmanaged dll",0);
    case DLL_THREAD_ATTACH:
    case DLL_THREAD_DETACH:
    case DLL_PROCESS_DETACH:
        break;
    }
    return TRUE;
} 

¿Cómo puedo establecer un punto de entrada para mi dll? Y si no le importa, ¿puede darme una pequeña explicación sobre el punto de entrada?

¿Como tengo que configurar importar el mismo dll nuevamente y cambiar el punto de entrada para poder usar otras funciones en el mismo dll? gracias por adelantado

Respuestas a la pregunta(1)

Su respuesta a la pregunta