Ver Mensaje Individual
  #9  
Antiguo 23-06-2008
[FGarcia] FGarcia is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Cordoba, Veracruz, México
Posts: 1.123
Reputación: 20
FGarcia Va por buen camino
Lo prometido es deuda ¡ya regrese!

Si uso TcomPort como un componente dentro de un form ("soltado" desde la paleta) y quisiera guardar su configuracion lo haria asi:

Código Delphi [-]
procedure TForm1.Button5Click(Sender: TObject);
var
  Archivo: string;
begin
  Archivo := ExtractFilePath(ParamStr(0)) + 'CommCfg.ini';
  
  //Esto es un metodo del componente
  ComPort1.StoreSettings(stIniFile, Archivo);
end;

Ahora como estoy jugando con la DLL he declarado esto:

Código Delphi [-]
//DLL
procedure GuardarConfiguracion(archivo: PChar); stdCall;
begin
  PuertoS.StoreSettings(stIniFile, Archivo);
end;
 
exports
    AjustesActuales,
    GuardarConfiguracion;

y lo llamo asi:

Código Delphi [-]
procedure GuardarConfiguracion(archivo: PChar); stdcall; external 'ComScale.dll';
 
procedure TForm1.Button5Click(Sender: TObject);
var
  Archivo: string;
begin
  Archivo := ExtractFilePath(ParamStr(0)) + 'CommCfg.ini';
  GuardarConfiguracion(pchar(Archivo));
end;

el error que me manda

Cita:
---------------------------
Debugger Exception Notification
---------------------------
Project UsaComScale.exe raised exception class EComPort with message 'Failed to store settings'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
A mi entender el problema estaria en que la funcion en la dll el parametro Archivo se recibe como un PChar y deberia ser un string (en esencia son lo mismo ¿o no?) luego entonces ¿hace falta una conversion mas? ¿como se haria?

¡Esa si no me la se DEC!

Gracias por la ayuda y disculpas por ser tan pesado.
Responder Con Cita