Ver Mensaje Individual
  #12  
Antiguo 13-01-2006
chete chete is offline
Registrado
 
Registrado: ene 2006
Ubicación: TUI-Pontevedra
Posts: 8
Reputación: 0
chete Va por buen camino
Smile y añadiendo un poquitito más.

Parte del problema es el modo de pasar los valores, como decía en el post anterior PChar, PInt, porque si no empezarán los problemas.

Pero también hay que tener mucho cuidado con como asignamos valores. En una función que pase parámetros por referencia, o en una función que devuelve algo, hay que fijarse en cómo se le asigna el valor.
Por ejemplo
Si tengo esta función
procedure GetDocumentListResponseDoc(
docIndex:PLongint ;
var documentID:PLongint;
var superState:PChar;
var state: PChar;
var format:PChar;
var submissionDate:PChar;
var documentNumber:PChar;
var documentFunction:PChar;
var docType:PChar;
var companyName:PChar;
var identityCount:PLongint);stdcall;export;


No se puede cojer directamente y hacer algo así
superState:=PChar('Nuevo');

en la segunda cadena se perderán los valores.
Os pongo la función para que la tengáis pues a mí me ha dado un buen dolor de cabeza :

procedure GetDocumentListResponseDoc(
docIndex:PLongint ;
var documentID:PLongint;
var superState:PChar;
var state: PChar;
var format:PChar;
var submissionDate:PChar;
var documentNumber:PChar;
var documentFunction:PChar;
var docType:PChar;
var companyName:PChar;
var identityCount:PLongint);stdcall;export;
var
cad:string; //variable para almacenar el resultado a guardar.
begin
documentID:=plongint(12);
cad:='';
cad:='OPEN';
superState:=PChar(cad);
cad:='';
cad:='NEW';
state:=PChar(cad);
cad:='';
cad:='XMLTLR';
format:=PChar(cad);
cad:='';
cad:='2005-0101';
submissionDate:=PChar(cad);
cad:='';
cad:='R99';
documentNumber:=PChar(cad);
cad:='';
cad:='ORIGINAL';
documentFunction:=PChar(cad);
// docType:=PChar('ORDER');
// companyName:=PChar('MyCompany');
identityCount:=PLongint(3);
end;
Responder Con Cita