Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Ayuda con libreria y unidad de importacion (https://www.clubdelphi.com/foros/showthread.php?t=61912)

tuflotas 26-11-2008 19:20:06

Ayuda con libreria y unidad de importacion
 
Hola que tal?

Tengo un problema, uso este código para la importacion:

Código Delphi [-]
unit ImpTransformacionPalabras;
 
interface
USES TiposTransformacionPalabrasSept;
        Procedure GenerarSolucion;
        PROCEDURE NuevaPalabra(Palabra:TPalabra; VAR Estado:TEstadoJuego; VAR Correcta:boolean);
        PROCEDURE BorrarUltimaPalabra(var Estado:TEstadoJuego);
        FUNCTION CompararUltimaPalabra(Estado:TEstadoJuego):Boolean;
        FUNCTION get(i:integer):TPalabra;
implementation
        Procedure GenerarSolucion; EXTERNAL 'LibTransformacionPalabras.dll'
        PROCEDURE NuevaPalabra(Palabra:TPalabra; VAR Estado:TEstadoJuego; VAR Correcta:boolean); EXTERNAL 'LibTransformacionPalabras.dll'
        PROCEDURE BorrarUltimaPalabra(var Estado:TEstadoJuego); EXTERNAL 'LibTransformacionPalabras.dll'
        FUNCTION CompararUltimaPalabra(Estado:TEstadoJuego):Boolean; EXTERNAL 'LibTransformacionPalabras.dll'
        FUNCTION get(i:integer):TPalabra; EXTERNAL 'LibTransformacionPalabras.dll'
end.

Y la biblioteca como

Código Delphi [-]
library LibTransformacionPalabras;
{Biblioteca. 19/10/2008}
{Aqui se exportan los subprogramas de la unidad donde están}
{implementadas, de aquí se enlazarán a la unidad de importación}
{Se añade la funcion get para conseguir el valor de una variable}
{ Important note about DLL memory management: ShareMem must be the
  first unit in your library's USES clause AND your project's (select
  Project-View Source) USES clause if your DLL exports any procedures or
  functions that pass strings as parameters or function results. This
  applies to all strings passed to and from your DLL--even those that
  are nested in records and classes. ShareMem is the interface unit to
  the BORLNDMM.DLL shared memory manager, which must be deployed along
  with your DLL. To avoid using BORLNDMM.DLL, pass string information
  using PChar or ShortString parameters. }
uses
  SysUtils,
  Classes,
  JugadasTransformacionPalabras in 'JugadasTransformacionPalabras.pas',
  TiposTransformacionPalabrasSept in 'TiposTransformacionPalabrasSept.pas';
{$R *.RES}
EXPORTS GenerarSolucion,NuevaPalabra,BorrarUltimaPalabra,CompararUltimaPalabra,Get;
begin
end.


pero cuando ejecuto el programa principal me salta esta excepción "Raised exception class EInOutError with message "I/O error 104". Process stopped"

Uso un fichero, donde leo, solo lo leo, y no escribo nada, lo abro con assingfile y subo al principio del fichero con reset. Luego lo cierro al finalizar el subprograma que lo abre.

Es rarisimo el error, solo me da con la biblioteca, pero no consigo ver si está o no mal escrita.

** El error me salta en la primera linea del programa principal que es cuando va a irse al subprograma de la unidad Jugadastransformacion... que es donde abro el fichero y cierro al finalizar

tuflotas 28-11-2008 07:23:13

Vale, lo que pasaba era que la virtual box en laque programaba debia de tener algo mal, porque en un sistema operativo completo si que me va!


La franja horaria es GMT +2. Ahora son las 17:38:27.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi