Dll en .net desde FiveWin

Post Reply
User avatar
jrestojeda
Posts: 543
Joined: Wed Jul 04, 2007 3:51 pm
Location: Buenos Aires - Argentina

Dll en .net desde FiveWin

Post by jrestojeda »

Hola a todos,
Estoy queriendo realizar pruebas de crear una dll en c#.net y luego a dicha dll usarla desde FiveWin.
¿Se puede? En ese caso... cuál sería la metodología.

Dejó un pequeño código de prueba con el código c# y luego el código FiveWin.

Code: Select all

using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.ServiceModel;
using System.Windows.Forms;
using System.Xml;
using System.Xml.Linq;
using System.Xml.Serialization;


namespace MyDll
{
    public class Class1
    {
        int Sumar(int a, int b)
        {
            int nSuma = 0;

            nSuma = a + b;

            return nSuma;
        }
    }
}
 
Este código lo compilo con Visual Studio y genero una dll.

Luego mi idea en FiveWin a grueso modo es la siguiente:

Code: Select all

#include "fivewin.ch"

Function Main()
Local a,b

a:=1
b:=2

nResultado:=Sumar(a,b) // La función Sumar es la que esta en la dll y el resultado debería ser 3

MsgInfo(STR(nResultado))

Return nil
 
¿Cómo se debería invocar a la DLL?

Si bien este ejemplo que quiero lograr es sencillo, la idea es luego poder acceder a WebServices con c# y luego a traves de una dll utilizar esas funciones desde los programas en FiveWin.

¿Alguna ayuda?

Desde ya muchas gracias.
Saludos,
Ojeda Esteban Eduardo.
Buenos Aires - Argentina.
FWH - PellesC - DBF/CDX - ADS - Gloriosos .Bat - MySql - C# .net - FastReport
Skype: jreduojeda
User avatar
jrestojeda
Posts: 543
Joined: Wed Jul 04, 2007 3:51 pm
Location: Buenos Aires - Argentina

Re: Dll en .net desde FiveWin

Post by jrestojeda »

Antonio,
Muchas gracias por la respuesta. Vamos a ver que sale...
Saludos,
Ojeda Esteban Eduardo.
Buenos Aires - Argentina.
FWH - PellesC - DBF/CDX - ADS - Gloriosos .Bat - MySql - C# .net - FastReport
Skype: jreduojeda
User avatar
Joel Andujo
Posts: 109
Joined: Fri Oct 07, 2005 3:14 pm
Location: Cd. Obregón, Sonora, México
Contact:

Re: Dll en .net desde FiveWin

Post by Joel Andujo »

Hola amigo, así quedaría :

Code: Select all

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;

namespace MyDll
{
    [InterfaceTypeAttribute(ComInterfaceType.InterfaceIsDual)]
    public interface ValidaMetodos
    {
        int Sumar(int a, int b);
    }

    public class Suma:ValidaMetodos
    {
        public Suma()
        {
        }

        public int Sumar(int a, int b)
        {
            int nSuma = 0;

            nSuma = a + b;

            return nSuma;
        }
    }
}
 
- En Propiedades de la Clase -> Información de ensamblado se tiene que seleccionar : Crear ensamblado visible a travéz de COM.
- Se tiene que registrar la dll : regasm.exe MyDll.dll /register /tlb (sales a la ventana de DOS como administrador)

Así se ejecuta desde FWH:

Code: Select all

 // Instanciamos la DLL
 oSuma:=CreateObject('MyDll.Suma')
 TRY
   nResultado:=oSuma:Sumar(5, 5)
   ? nResultado
 CATCH oErr
   ? 'Error al instanciar Dll!!'
 END
 
Espero te ayude, para mi se han abierto un sin número de posibilidades al generar dll expuestas COM y poder usarlas desde nuestro FWH.

saludos
Joel Andujo
User avatar
jrestojeda
Posts: 543
Joined: Wed Jul 04, 2007 3:51 pm
Location: Buenos Aires - Argentina

Re: Dll en .net desde FiveWin

Post by jrestojeda »

Joel,
Muchas gracias por la respuesta.
Voy a hacer las pruebas correspondientes y luego comentaré.
Saludos,
Ojeda Esteban Eduardo.
Buenos Aires - Argentina.
FWH - PellesC - DBF/CDX - ADS - Gloriosos .Bat - MySql - C# .net - FastReport
Skype: jreduojeda
Post Reply