"No se puede encontrar un punto de entrada llamado [función] en dll" (conversión de tipo c ++ a c #)

Tengo un dll que proviene de un tercero, que fue escrito en C ++. Aquí hay información que proviene de la documentación de dll:

//start documentation

RECO_DATA{
wchar_t Surname[200];
wchar_t Firstname[200];
}

Descripción: Estructura de datos para recibir el resultado de la función. Todos los resultados de la función se almacenarán como Unicode (UTF-8).

Método

bool recoCHN_P_Name(char *imgPath,RECO_DATA *o_data);

Entrada

char * imgPath

la ruta completa de la ubicación de la imagen para que esta función reconozca

RECO_DATA * o_data

bjeto @data para recibir el resultado de la función. Retorno de función: verdadero si es correcto; de lo contrario, falso volver

//end documentation

Estoy intentando llamar a recoCHN_P_Name desde mi aplicación C #. Con este fin, se me ocurrió este código:

El código para importar la dll:

    public class cnOCRsdk
{
    [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
    public struct RECO_DATA{
        [MarshalAs(UnmanagedType.ByValTStr, SizeConst=200)]
        public string FirstName;
        [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 200)]
        public string Surname;
        }

    [DllImport(@"cnOCRsdk.dll", EntryPoint="recoCHN_P_Name")]
    public static extern bool recoCHN_P_Name(byte[] imgPath, RECO_DATA o_data);
}

El código para llamar a la función:

            cnOCRsdk.RECO_DATA recoData = new cnOCRsdk.RECO_DATA();

        string path = @"C:\WINDOWS\twain_32\twainrgb.bmp";

        System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
        byte[] bytes = encoding.GetBytes(path);

        bool res = cnOCRsdk.recoCHN_P_Name(bytes, recoData);

Y el error que obtengo es "" No se puede encontrar un punto de entrada llamado 'recoCHN_P_Name' en la DLL 'cnOCRsdk.dll'. "Sospecho que estoy teniendo un error al convertir un tipo de C ++ a C #. ¿Pero dónde exactamente ...?

Respuestas a la pregunta(7)

Su respuesta a la pregunta