Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-11-2010
Suriu Suriu is offline
Miembro
 
Registrado: abr 2007
Posts: 48
Poder: 0
Suriu Va por buen camino
Question Problema creando una libreria.

Estoy creando una librería la cual el código es parecido a este:

Código Delphi [-]

library Project1;
uses
SysUtils,
Classes,
Dialogs;
{$R *.res}
Type
TModo = (B64);
Function ESum(Datos: String; Value: Word; Modo: TModo): String; stdcall;
begin
case Modo of
B64: Result := 'uses b64';
end;
end;
exports
ESum name 'Do64';
 
begin
end.

Este se compila bien y para la cual e creado una unit de importación la cual uso en el proyecto:

Código Delphi [-]

unit Usescrypt;
interface
type
TModo = (B64);
const
ades = 'Project1.dll';
Type
TEncpt = function(Datos: String; Value: Word; Modo: TModo): String; stdcall;
function Base64(value : string) : string;
implementation
uses
Windows, Dialogs, SysUtils;
var
hencrypt : THandle;
_B64 : TEncpt;
function Base64(value : string) : string;
begin
If Assigned(_B64) then
Result := _B64(value,0,B64)
else
Result := 'No se pudo cargar la funcion';
end;
procedure comprueva;
begin
hencrypt := LoadLibrary(PChar(ades));
if hencrypt = 0 then
ShowMessage('no se pudo cargar la dll project1.dll')
else
@_B64 := GetProcAddress(hencrypt,'Do64');
end;
Initialization
comprueva;
Finalization
FreeLibrary(hencrypt);
end.
 
// application
 
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Label1: TLabel;
Label2: TLabel;
Button1: TButton;
OpenDialog1: TOpenDialog;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Usescrypt;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Caption := Base64(Label1.Caption);
end;
end.

Hasta aquí todo funciona buen pero una vez el programa esta en tiempo de ejecución y después de llamar a la función exportada y que esta devuelve el resultado produce un error antes de finalizar el bloque de código del procedimiento, dicho error lo adjunto.

Les pido me expliquen por que sucede esto, pues e intentado de todo pero no e logrado solucionar el problema. Gracias de antemano por la ayuda…
Archivos Adjuntos
Tipo de Archivo: zip error.zip (8,7 KB, 3 visitas)
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problema Creando un Form Dinamico Juanitol Varios 5 15-11-2007 13:54:28
Problema creando XML PaCmAn72 Internet 2 15-05-2007 14:56:33
Problema creando Clave Primaria: 'too may keys defined' amkalzada Conexión con bases de datos 4 11-05-2006 13:45:46
Problema creando un nuevo componente y un editor de propiedades Koder OOP 8 21-08-2005 10:59:08
problema creando una base de datos para varios usuarios ercrizeporta Conexión con bases de datos 3 06-07-2005 23:29:35


La franja horaria es GMT +2. Ahora son las 09:51:52.


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