PDA

Ver la Versión Completa : Tipar parametros .dll


castefo
01-08-2018, 23:48:41
Estoy intentando usar esta .dll pero no se como tipar el primer parametro de la siguiente funcion:


var
handleDll : THandle;

function sessionOption(tipoftp:??? ; host,usr,pass:string ):boolean;

begin
handleDll := LoadLibrary('WinSCPnet.dll');

if (handleDll <> 0) then
begin

SessionOtion := GetProcAddress(handleDll, 'SessionOption');

SessionOption( protocol.ftp, edhos.text , edusr.text , espas.text)


Como se debe codificar en estos casos
Gracias

Neftali [Germán.Estévez]
02-08-2018, 08:46:08
Realmente SessionOptions no es una función a la que llamar. Es una clase con varias propiedades. Una vez creado el objeto y rellenadas las propiedades, debes utilizarlo para el método Open.
Puedes revisar la documentación aquí. (https://winscp.net/eng/docs/library_sessionoptions#properties)

En la propia página de WinSCP tienes ejemplos de cómo realizar la conexión, aunque desgraciadamente no están en Delphi. Revísalos porque tal vez te den una idea de cómo utilizar la DLL. Algún compañero también te pùede ayudar a realizar una traducción.


...
try
{
// Setup session options
SessionOptions sessionOptions = new SessionOptions
{
Protocol = Protocol.Sftp,
HostName = "example.com",
UserName = "user",
Password = "mypassword",
SshHostKeyFingerprint = "ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx:..."
};

using (Session session = new Session())
{
// Connect
session.Open(sessionOptions);

// Upload files
TransferOptions transferOptions = new TransferOptions();
transferOptions.TransferMode = TransferMode.Binary;
...


Una cosa curiosa del programa WinSCP, es que el propio programa te ayuda a generar código de conexión (de nuevo desgraciadamente, no para delphi, sí para VB.NET y C#).
Dentro del programa tienes una opción de "Generate session URL/code" que te muestra una ventana como la siguiente:


https://i.imgur.com/VmJ6wvV.png

castefo
02-08-2018, 10:48:31
Ese es justamente el problema. He leido toda la documentación pero no se como traducirla a Delphi.


Quizas alguien desde un playita soleda y que sea bilinguaje pueda ayudarnos a convertir este codigo.


Muchas gracias.