¿Es posible devolver un LPWSTR de C ++ DLL a la aplicación C

a definición de la función C ++ es esta

__declspec(dllexport) LPWSTR __stdcall GetErrorString(int errCode);

Y lo llamo en C # como este

 [DllImport("DLLTest.dll")]
 public static extern string GetErrorString(int errCode);

 static void Main(string[] args)
{
    string result = GetErrorString(5);
}

Obtengo una excepción no controlada del tipo System.Runtime.InteropServices.SEHException

Ni siquiera estoy seguro de si está bien que la DLL de C ++ intente devolver un LPWSTR a C # ...

Gracias