Dll Delphi...

16/06/2004 - 16:16 por Oscar Galvis | Informe spam
Hola, hace unos dias hice una pregunta respecto a consumir una dll en delphi
que tenia el siguiente prototipo

procedure _EncryptDB(pS: ShortString;var
strResult:ShortString);Stdcall;External 'commonr.dll';

despues d unos post y unas averiguaciones lo resolvi de la siguiente
manera...

[DllImport("commonr.dll", CallingConvention=CallingConvention.StdCall)]
static extern void _EncryptDB(
[MarshalAs(UnmanagedType.LPArray)] byte[] strToEncrypt,
[MarshalAs(UnmanagedType.LPArray)] byte[] strResult );

unsafe public String EncryptWord(String toEncrypt)
{
byte[] toEnc = new byte[256];
byte[] toEnc1 = new byte[256];
toEnc = System.Text.Encoding.ASCII.GetBytes(toEncrypt);
toEnc1[0] = (byte)toEncrypt.Length;
for(int i=0; i<toEnc.Length ; i++)
{
toEnc1[i+1] = toEnc[i];
}
byte[] str = new byte[256];
_EncryptDB(toEnc1, str);
String Encrypted System.Text.Encoding.ASCII.GetString(str).Substring(1,(int)str[0]);
return Encrypted;
}

Asi funciona a la perfeccion , pero con el pequenio detalle q el resto de mi
aplicacion web no funciona despues d ejecutar esta dll, hay alguna forma de
hacer como un Unload, sera q esta interferiendo con la memoria del equipo,
sera mi equipo?? si alguien tiene algun problema parecido porfa
contesteme...Gracias

pdta: La dll es consumida desde la aplicacion delphi sin ningun problema.

Salu2

OScar GALvis

Preguntas similare

Leer las respuestas

#1 Oscar Galvis
16/06/2004 - 17:06 | Informe spam
Respecto a Mi maquina no es.. ya probe en otra y tampoco... :(

Ayuda plz!!!!


"Oscar Galvis" wrote in message
news:
Hola, hace unos dias hice una pregunta respecto a consumir una dll en


delphi
que tenia el siguiente prototipo

procedure _EncryptDB(pS: ShortString;var
strResult:ShortString);Stdcall;External 'commonr.dll';

despues d unos post y unas averiguaciones lo resolvi de la siguiente
manera...

[DllImport("commonr.dll", CallingConvention=CallingConvention.StdCall)]
static extern void _EncryptDB(
[MarshalAs(UnmanagedType.LPArray)] byte[] strToEncrypt,
[MarshalAs(UnmanagedType.LPArray)] byte[] strResult );

unsafe public String EncryptWord(String toEncrypt)
{
byte[] toEnc = new byte[256];
byte[] toEnc1 = new byte[256];
toEnc = System.Text.Encoding.ASCII.GetBytes(toEncrypt);
toEnc1[0] = (byte)toEncrypt.Length;
for(int i=0; i<toEnc.Length ; i++)
{
toEnc1[i+1] = toEnc[i];
}
byte[] str = new byte[256];
_EncryptDB(toEnc1, str);
String Encrypted > System.Text.Encoding.ASCII.GetString(str).Substring(1,(int)str[0]);
return Encrypted;
}

Asi funciona a la perfeccion , pero con el pequenio detalle q el resto de


mi
aplicacion web no funciona despues d ejecutar esta dll, hay alguna forma


de
hacer como un Unload, sera q esta interferiendo con la memoria del equipo,
sera mi equipo?? si alguien tiene algun problema parecido porfa
contesteme...Gracias

pdta: La dll es consumida desde la aplicacion delphi sin ningun problema.

Salu2

OScar GALvis


Respuesta Responder a este mensaje
#2 Oscar Galvis
16/06/2004 - 18:11 | Informe spam
Mentiras.. ya lo solucione.. Gracias!!!


"Oscar Galvis" wrote in message
news:
Respecto a Mi maquina no es.. ya probe en otra y tampoco... :(

Ayuda plz!!!!


"Oscar Galvis" wrote in message
news:
> Hola, hace unos dias hice una pregunta respecto a consumir una dll en
delphi
> que tenia el siguiente prototipo
>
> procedure _EncryptDB(pS: ShortString;var
> strResult:ShortString);Stdcall;External 'commonr.dll';
>
> despues d unos post y unas averiguaciones lo resolvi de la siguiente
> manera...
>
> [DllImport("commonr.dll", CallingConvention=CallingConvention.StdCall)]
> static extern void _EncryptDB(
> [MarshalAs(UnmanagedType.LPArray)] byte[] strToEncrypt,
> [MarshalAs(UnmanagedType.LPArray)] byte[] strResult );
>
> unsafe public String EncryptWord(String toEncrypt)
> {
> byte[] toEnc = new byte[256];
> byte[] toEnc1 = new byte[256];
> toEnc = System.Text.Encoding.ASCII.GetBytes(toEncrypt);
> toEnc1[0] = (byte)toEncrypt.Length;
> for(int i=0; i<toEnc.Length ; i++)
> {
> toEnc1[i+1] = toEnc[i];
> }
> byte[] str = new byte[256];
> _EncryptDB(toEnc1, str);
> String Encrypted > > System.Text.Encoding.ASCII.GetString(str).Substring(1,(int)str[0]);
> return Encrypted;
> }
>
> Asi funciona a la perfeccion , pero con el pequenio detalle q el resto


de
mi
> aplicacion web no funciona despues d ejecutar esta dll, hay alguna forma
de
> hacer como un Unload, sera q esta interferiendo con la memoria del


equipo,
> sera mi equipo?? si alguien tiene algun problema parecido porfa
> contesteme...Gracias
>
> pdta: La dll es consumida desde la aplicacion delphi sin ningun


problema.
>
> Salu2
>
> OScar GALvis
>
>


Respuesta Responder a este mensaje
#3 Anonimo
17/06/2004 - 15:59 | Informe spam
Puedes decirnos cómo lo solucionaste ??
Respuesta Responder a este mensaje
#4 Octavio Hernandez
17/06/2004 - 16:16 | Informe spam
Oscar,

¿Qué era lo que te fallaba?

Slds - Octavio

"Oscar Galvis" escribió en el mensaje
news:%
Mentiras.. ya lo solucione.. Gracias!!!


"Oscar Galvis" wrote in message
news:
> Respecto a Mi maquina no es.. ya probe en otra y tampoco... :(
>
> Ayuda plz!!!!
>
>
> "Oscar Galvis" wrote in message
> news:
> > Hola, hace unos dias hice una pregunta respecto a consumir una dll en
> delphi
> > que tenia el siguiente prototipo
> >
> > procedure _EncryptDB(pS: ShortString;var
> > strResult:ShortString);Stdcall;External 'commonr.dll';
> >
> > despues d unos post y unas averiguaciones lo resolvi de la siguiente
> > manera...
> >
> > [DllImport("commonr.dll",


CallingConvention=CallingConvention.StdCall)]
> > static extern void _EncryptDB(
> > [MarshalAs(UnmanagedType.LPArray)] byte[] strToEncrypt,
> > [MarshalAs(UnmanagedType.LPArray)] byte[] strResult );
> >
> > unsafe public String EncryptWord(String toEncrypt)
> > {
> > byte[] toEnc = new byte[256];
> > byte[] toEnc1 = new byte[256];
> > toEnc = System.Text.Encoding.ASCII.GetBytes(toEncrypt);
> > toEnc1[0] = (byte)toEncrypt.Length;
> > for(int i=0; i<toEnc.Length ; i++)
> > {
> > toEnc1[i+1] = toEnc[i];
> > }
> > byte[] str = new byte[256];
> > _EncryptDB(toEnc1, str);
> > String Encrypted > > > System.Text.Encoding.ASCII.GetString(str).Substring(1,(int)str[0]);
> > return Encrypted;
> > }
> >
> > Asi funciona a la perfeccion , pero con el pequenio detalle q el resto
de
> mi
> > aplicacion web no funciona despues d ejecutar esta dll, hay alguna


forma
> de
> > hacer como un Unload, sera q esta interferiendo con la memoria del
equipo,
> > sera mi equipo?? si alguien tiene algun problema parecido porfa
> > contesteme...Gracias
> >
> > pdta: La dll es consumida desde la aplicacion delphi sin ningun
problema.
> >
> > Salu2
> >
> > OScar GALvis
> >
> >
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida