Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > .NET
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-01-2008
rcuevas rcuevas is offline
Miembro
 
Registrado: nov 2006
Ubicación: Rosas - Gerona - España
Posts: 39
Poder: 0
rcuevas Va por buen camino
Importar DLL escrita en Delphi 7

Buenos días,

Les escribo mi problema a ver si me muestran ustedes la luz.

Tengo una dll escrita en Delphi, muy simplona, con sólo 2 funciones:

Código PHP:
unit MainUnit;

interface  
function 
DesEncriptar(TextPChar):PCharStdCall;
function 
Encriptar(TextPChar):PCharStdCall;

implementation  
uses   IPSUFunc
,   Dialogs,   SysUtils;  
function 
DesEncriptar(TextPChar):PChar;
begin   result := PChar(DeCryptString(Text)); end;

function 
Encriptar(TextPChar):PChar;
begin   result := PChar(CryptString(Text)); end;

end
Aunque no he mostrado el código completo del proyecto, la dll compila correctamente, y nada me hace sospechar que haya un error.

Por otro lado, tengo un porgrama en C#.Net que utiliza esta dll. Para ser concreto, realizo la siguiente llamada para importar las funciones

Código:
[DllImport("IPSGraphUtils.dll", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
        static extern string Encriptar(string Text);
        [DllImport("IPSGraphUtils.dll", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
        static extern string DesEncriptar(string Text);
Y en algun lugar del código, utilñizo estas funciones como a continuación escribo:
Código:
UMiss.MissInfo(PerfilTemp.Password + " - " + DesEncriptar(PerfilTemp.Password));
            UMiss.MissInfo(PerfilTemp.Password + " - " + DesEncriptar(PerfilTemp.Password));
            UMiss.MissInfo(PerfilTemp.Password + " - " + DesEncriptar(PerfilTemp.Password));
(MissInfo tan sólo muestra una ventana con el texto que recibe por parámetro)

Y lo sorprendente biene ahora. En la primera llamada a MissInfo, obtengo, por ejemplo, el siguiente texto:
"daasdfasdfasdfsa - qwert@",
mientras que en las sucesivas, obtengo
"daasdfasdfasdfsa - qwerty"

Como bien podéis imaginar, la primera llamada no responde como era de esperar, y no sé porqué: creo que he fijado correctamente a PChar los strings en delphi, tb el CallingConvention y CharSet.

Como pista, diré que si el codigo delphi del siguiente modo el problema desaparece:

Código Delphi [-]
...
function FerVisible(Text: PChar):PChar;
begin
  result := PChar(Trim(DeCryptString(Text)));
end;

function FerInvisible(Text: PChar):PChar;
begin
  result := PChar(Trim(CryptString(Text)));
end;
...

Curioso, eh!!
Responder Con Cita
  #2  
Antiguo 20-01-2008
donki donki is offline
Miembro
 
Registrado: oct 2006
Posts: 24
Poder: 0
donki Va por buen camino
Hombre rcuevas,

Ke tal? Este código me suena

Mañana nos vemos
__________________
Grandes frases de nuestro tiempo:
"La pasta no és para tirarla, es para el Tunning"

"TodoOK=False...."

Enjoy it!!!
Responder Con Cita
Respuesta



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
Importar componente de Delphi 5 Fita Varios 2 13-06-2007 04:00:49
importar datos de excel a una base de paradox con delphi roraclau Tablas planas 4 11-01-2007 01:50:29
importar activeX control en delphi 2006... ronimaxh Varios 0 04-07-2006 23:17:56
Importar OCX en delphi JuanPa1 Varios 5 15-06-2006 13:18:37
Importar un DLL en Delphi!!! DB-ADO API de Windows 2 07-04-2005 19:32:30


La franja horaria es GMT +2. Ahora son las 11:17:47.


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