Cuando trabajamos con Velneo y necesitamos hacer una llamada a una dll que retorna una cadena (string) nos encontramos con la tesitura de como liberar el espacio de memoria alojada para la cadena en cuestión en la dll.

Leer más

 

Etiquetas: Dll, , ,

Valorar la entrada
1 Puntos2 Puntos3 Puntos4 Puntos5 Puntos
(Sin votos)

Comentarios

  • Roberto Blasco
    Mayo 3, 2008 - 11:40 #

    Podemos “jugar” utilizando la clase AnsiString de C++

    char* __stdcall Fichero2Cadena(const char* rutaFichero){

    int iFileHandle;
    int iFileLength;
    char *buffer;
    AnsiString strTemp;

    try{
    iFileHandle = FileOpen(rutaFichero, fmOpenRead);
    iFileLength = FileSeek(iFileHandle,0,2);
    FileSeek(iFileHandle,0,0);

    buffer = (char*)malloc((iFileLength+1)*sizeof(char));

    FileRead(iFileHandle, buffer, iFileLength);
    FileClose(iFileHandle);

    // *************************************************************
    // Asignamos a un AnsiString el buffer para así poder liberarlo.
    // *************************************************************
    strTemp = buffer;
    free(buffer);
    return (char*)strTemp.c_str();

    }
    catch(Exception &e){
    free(buffer);
    return (char*)e.Message.c_str();
    }

    }

    Valora este comentario: (0 votos)

Comentar

Cerrar
Enviar por Correo