Como posso definir um ponto de entrada para uma dll

Primeiro pensei no ponto de entrada no DLLMain DLL, mas quando tento importá-lo em C #, recebo um erro de que o ponto de entrada não foi encontrado Aqui está o meu 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;
} 

Como posso definir um ponto de entrada para minha dll? E se você não se importa, pode me dar uma pequena explicação sobre o ponto de entrada?

Como eu tenho que definir importar a mesma dll novamente e alterar o ponto de entrada para que eu possa usar outras funções na mesma dll? desde já, obrigado

questionAnswers(1)

yourAnswerToTheQuestion