Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Error al LLamar un DLl, "memoria Insuficiente"

Estas en el tema de Error al LLamar un DLl, "memoria Insuficiente" en el foro de Visual Basic clásico en Foros del Web. Hola.. mi problema es el siguiente.. he creado una DLL y esta DLL tiene un formulario donde se ejecutan prefectamente las funciones. pero al llamar ...
  #1 (permalink)  
Antiguo 27/03/2009, 16:36
 
Fecha de Ingreso: abril-2008
Mensajes: 40
Antigüedad: 16 años
Puntos: 0
Error al LLamar un DLl, "memoria Insuficiente"

Hola.. mi problema es el siguiente..

he creado una DLL y esta DLL tiene un formulario donde se ejecutan prefectamente las funciones. pero al llamar esas funciones dentro de un proyecto de VB6 me sale este dichoso error: error '7' en tiempo de ejecucion memoria insuficente.

lo mas curioso es que llamo esta funcion desde un proyecto de Delphi y me funciona correctamente.

quisiera saber como solucionar este problema.. es urgente.
aqui esta el codigo de la DLL. la funcion se ejecuta hasta el procedimento "banda" lo se porq eso me muestra un msj en un dispositivo que tengo conectado al puerto.

function leebanda:string;stdcall;
var
sTmp: string;
c1,rebut: integer;
chBuffer: array[0..150] of char;
NumberOfBytesRead: dword;
begin
//abro el puerto
AbrirPuerto('COM1','1200','E','7','1');
//mensaje de solicitud de lectura
banda;

repeat
rebut:=0;
repeat
if ComFile=INVALID_HANDLE_VALUE then
Exit;
if not ReadFile(ComFile, chBuffer[rebut],1, NumberOfBytesRead, nil) then
raise Exception.Create('Imposible leer datos desde el puerto');
for c1:= 0 to NumberOfBytesRead - 1 do
sTmp:= sTmp+chBuffer[c1];
until rebut<100 ;
if chBuffer[rebut]=chr(04) then
begin
closehandle(ComFile);
/ /libero memoria
SetProcessWorkingSetSize(GetCurrentProcess, $FFFFFFFF, $FFFFFFFF);
break;
end;
until rebut=100;
result:=sTmp;
end;

y aqui esta el llamado desde el proyecto de vb6


Private Declare Function leebanda Lib "C:\pnp\dllcredicard.dll" () As String
public retorno as string
Private Sub boton_leer_banda_Click()
Dim txt As String
Dim token As String
Dim msj As String
' Se llama a la función del VPOS para leer la banda
retorno = leebanda
' Se obtiene el valor del string que retorna la función del VPOS

x = retorno
retorno = GetToken(retorno, ";") '& vbCrLf
Do
token = GetToken("", ";")
If token = "" Then Exit Do
retorno = retorno '& vbCrLf
txt = token
Loop
' Se asigna en la box de texto el valor de los diferentes tracks
If retorno <> "" Then
var = InStr(1, retorno, "?")
msj = Mid(retorno, 2, var - 2)
txt_track1.Text = msj
Else
txt_track1.Text = ""
End If
If txt <> "" Then
var = InStr(1, txt, "?")
msj = Mid(txt, 1, var - 2)
txt_track2.Text = msj
Else
txt_track2.Text = ""
End If
End Sub

espero tengan una idea de lo que pueda ser... gracias por la atencion y la ayuda
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:17.