Crear Dll en C# y utilizala desde Visual FoxPro 9

1,956 views
Skip to first unread message

Paul

unread,
Jun 29, 2011, 7:39:37 AM6/29/11
to Comunidad de Visual Foxpro en Español
Hola,
Necesito crear un Dll en Visual C# y utilizarla desde Visual FoxPro
9.
Alguien puede ayudarme?

Gracias

Cesar VfpImaging

unread,
Jun 29, 2011, 8:16:51 AM6/29/11
to Comunidad de Visual Foxpro en Español
Si, es posible, pero tienes que tener unos conocimientos de Visual C#
He creado algunas para suprir mis necesidades, utilizando Visual C#
EXPRESS (gratis), sin problemas.

La mejor fuente para es Rick Strahl
http://www.west-wind.com/presentations/VfpDotNetInterop/DotNetFromVFP.asp
http://www.west-wind.com/presentations/VFPDOTNETiNTEROP/VFPDOTNETINTEROP.HTM
http://objectmix.com/csharp/339968-make-dll-c-foxpro.html

ricardo peña

unread,
Jun 29, 2011, 8:51:22 AM6/29/11
to GRUPO-VFP GRUPO-VFP
Amigos:
 
Tengo que convertir una aplicación vfp 7.0 a vfp 9 SP 2.
 
¿ Se puede generar el proyecto en vfp 9 sp 2 o necesito hacer algún cambio ?
¿ Las vcx pasan alegremente ?

Ricardo Luis Peña
Analista de Sistemas
BA - Argentina

 
 

Luis Maria Guayan

unread,
Jun 29, 2011, 9:29:56 AM6/29/11
to publice...@googlegroups.com
Ningun cambio, solo debes tener en cuenta algunos cambios de comportamientos como el GROUP BY y el nuevo sistema de reportes.

Para compatibilidad con VFP7 solo deberias hacer

SET ENGINEBEHAVIOR 70
SET REPORTBEHAVIOR 80

Pero no es lo mas recomendado, es conveniente que hagas los cambios en tus SELECTs y REPORTs


Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________

Regional Educacion

unread,
Jun 29, 2011, 10:01:09 AM6/29/11
to publice...@googlegroups.com
Me podrian ayudar a crear un juego en foxpro, se trata de una letra que camine y hayan 4 obstaculos
--
Licda. Mercedes Mella
Directora  Regional de Educación 18, Bahoruco
Tel: 809-527-9160
Cel: 809-796-8148

GeoSys Diseño de Software

unread,
Jun 29, 2011, 11:30:11 AM6/29/11
to publice...@googlegroups.com
Crea un hilo nuevo enviando un correo a la siguiente dirección: publice...@googlegroups.com

Con el asunto que quieras, para que cualquier colega te pueda ayudar si está dentro de las posibilidades y tienes que ser más espécifico con tu pregunta.

Saludos

Anthony Contreras Peralta

Costa Rica.

Walter R. Ojeda Valiente

unread,
Jun 29, 2011, 2:40:57 PM6/29/11
to publice...@googlegroups.com
¿Quiéres que te hagamos la tarea?

Saludos.

Walter.




Date: Wed, 29 Jun 2011 03:01:09 -1100
Subject: Re: [vfp] Convertir VFP 7 a VFP 9 SP2
From: regio...@gmail.com
To: publice...@googlegroups.com

Victor Espina

unread,
Jun 30, 2011, 9:52:42 AM6/30/11
to publice...@googlegroups.com
Aqui te coloco los tips claves (muchos sacados de los links de Rick Strahl que te sugirio el companero, otros de mi experiencia con esto):

1. En tu clase C# debes incluir el namespace System.Runtime.InteropServices;

2. La clase que deseas accesar desde VFP debe estar declarada como public y tener estas directivas:

    [ClassInterface(ClassInterfaceType.AutoDual)]
    [ProgId("className")]

donde "className" es el nombre OLE de la clase, es decir, el que usaras en el CREATEOBJECT en VFP.

3  Los metodos de la clase que quieras accesar desde VFP deben estar declarados como public y no ser estaticos.

4. Los metodos publicos de la clase no pueden tener sobrecargas, es decir, multiples versiones del mismo metodo con diferentes parametros.

5. Si un metodo devuelve un tipo estructurado, este tipo debe ser creado como class (no como struct) y cumplir con todas las condiciones indicadas en los puntos 1, 2, 3 y 4.

6. Si un metodo devuelve un array de cualquier tipo (ej, string[]), VFP lo recibe como un tipo ARRAY y no como un objeto (como lo es en .NET), por lo que no podremos acceder a las propiedaes del array, tal como Lenght, pero si a sus items:

  aItems = myClass.MyMethod()
  FOR EACH oItem IN aItems
   ?oItem.Property
  ENDFOR

o

   aItems = myClass.MyMethod()
   FOR i = 1 TO ALEN(aItems,1)
     oItem = aItems[i]
     ?oItem.Property
   ENDFOR


7. Una vez compilada la dll, la misma debe ser registrada de la siguiente forma antes de poder ser usada en VFP:

Windows 32 bits:
 C:\WINDOWS\microsoft.net\framework\v2.0.50727\regasm mylib.dll /register /codebase /tlb

Windows 64 bits
 C:\WINDOWS\microsoft.net\framework64\v2.0.50727\regasm mylib.dll /register /codebase /tlb

Espero te sea de utilidad.

Saludos

Victor Espina

ricardo peña

unread,
Jun 30, 2011, 9:52:51 AM6/30/11
to GRUPO-VFP GRUPO-VFP
Estoy convirtiendo de vfp 7 a vfp 9 sp2 y cuando intento
reconstruir el proyecto me aparece un cartel que dice:
 
Memo file c:\misistema\libs\misclases.vct is missing or is invalid
 
Desde ya el archivo misclases.vcx y misclases.vct existen, lo que me
hace suponer que el archivo vct es inválido.
 
¿ Hay alguna forma de salvar este inconveniente o tengo que
generar las clases otra vez ?


Ricardo Luis Peña
Analista de Sistemas
BA - Argentina

 

Date: Wed, 29 Jun 2011 10:29:56 -0300
From: luism...@gmail.com
To: publice...@googlegroups.com

Subject: Re: [vfp] Convertir VFP 7 a VFP 9 SP2

Yvan GMAIL

unread,
Jun 30, 2011, 9:57:28 AM6/30/11
to publice...@googlegroups.com

Hola Ricardo,

En mi caso yo me pasé de 6 a 9.. y también tuve problemas con las clases.. lo que hice fue:

Crear una nueva librería de clases y arrastrar las clases de  la librería antigua a la actual, luego elimine la antigua y renombre la nueva y todo OK.

Walter R. Ojeda Valiente

unread,
Jun 30, 2011, 9:55:04 AM6/30/11
to publice...@googlegroups.com
Interesante información Víctor, voy a hacer una prueba ahora.

Saludos.

Walter.




Date: Thu, 30 Jun 2011 06:52:42 -0700
From: vesp...@gmail.com
To: publice...@googlegroups.com
Subject: [vfp] Re: Crear Dll en C# y utilizala desde Visual FoxPro 9

ricardo peña

unread,
Jun 30, 2011, 10:28:28 AM6/30/11
to GRUPO-VFP GRUPO-VFP
A qué te referís con arrastrar.  Yo intenté hacer ADD CLASS
pero el error me sigue apareciendo


Ricardo Luis Peña
Analista de Sistemas
BA - Argentina

 

From: yvan.c...@gmail.com
To: publice...@googlegroups.com
Subject: RE: [vfp] Convertir VFP 7 a VFP 9 SP2
Date: Thu, 30 Jun 2011 08:57:28 -0500

Yvan GMAIL

unread,
Jun 30, 2011, 10:34:37 AM6/30/11
to publice...@googlegroups.com

Desde mi proyecto de VFP 6… abro la pestaña clases..  y creo nueva biblioteca .. y luego arrastro.. “drag & drop”..  cada clase de la antigua hacia la nueva librería.

 

Si lo haces desde la 9.. no te funcionará ya que ni siquiera se puede expandir el contenido de la librería.

 

Saludos.

Yvan Carranza

ricardo peña

unread,
Jun 30, 2011, 10:53:04 AM6/30/11
to GRUPO-VFP GRUPO-VFP
Excelente Ivan. Muchas gracias.


Ricardo Luis Peña
Analista de Sistemas
BA - Argentina

 

From: yvan.c...@gmail.com
To: publice...@googlegroups.com
Subject: RE: [vfp] Convertir VFP 7 a VFP 9 SP2
Date: Thu, 30 Jun 2011 09:34:37 -0500

Ricardo Pina

unread,
Jun 30, 2011, 4:11:41 PM6/30/11
to publice...@googlegroups.com
Hola Ricardo
 
Los Afields devuelven un array de 18 en vez de 16 y tuve que dimensionar los array
Los Group by (como ya te dijeron)
El message(1)
Select sum(campo) as importe (el campo importe es null en lugar de 0 cuando no tiene registros)
 
Estas son pequeñas diferencias que hemos encontrado.
 
Saludos


 
2011/6/30 ricardo peña <rl...@hotmail.com>



--
Ricardo Pina
D&SIP
Desarrollo y Servicios Informáticos Profesionales
www.dsip.com.ar

Mario Alfredo

unread,
Jul 7, 2011, 2:56:45 PM7/7/11
to Comunidad de Visual Foxpro en Español
para el caso de
Select sum(campo) as importe (el campo importe es null en lugar de 0
cuando
no tiene registros)
if ISNULL(importe)
else
endif

lo solucione asi, o hay otra forma

On 30 jun, 14:11, Ricardo Pina <ricp...@gmail.com> wrote:
> Hola Ricardo
>
> Los Afields devuelven un array de 18 en vez de 16 y tuve que dimensionar los
> array
> Los Group by (como ya te dijeron)
> El message(1)
> Select sum(campo) as importe (el campo importe es null en lugar de 0 cuando
> no tiene registros)
>
> Estas son pequeñas diferencias que hemos encontrado.
>
> Saludos
>
> 2011/6/30 ricardo peña <r...@hotmail.com>
>
>
>
>
>
>
>
>
>
> >  Excelente Ivan. Muchas gracias.
>
> > Ricardo Luis Peña
> > Analista de Sistemas
> > BA - Argentina
>
> >  ------------------------------
> > From: yvan.carra...@gmail.com> To:publice...@googlegroups.com
> > Subject: RE: [vfp] Convertir VFP 7 a VFP 9 SP2
> > Date: Thu, 30 Jun 2011 09:34:37 -0500
>
> >  Desde mi proyecto de VFP 6… abro la pestaña clases..  y creo nueva
> > biblioteca .. y luego arrastro.. “drag & drop”..  cada clase de la antigua
> > hacia la nueva librería.
>
> > Si lo haces desde la 9.. no te funcionará ya que ni siquiera se puede
> > expandir el contenido de la librería.
>
> > Saludos.
>
> > Yvan Carranza
>
> > *De:*publice...@googlegroups.com[mailto:>publice...@googlegroups.com]*En nombre de *ricardo peña
> > *Enviado el:* Jueves, 30 de Junio de 2011 09:28 a.m.
> > *Para:* GRUPO-VFP GRUPO-VFP
> > *Asunto:* RE: [vfp] Convertir VFP 7 a VFP 9 SP2
>
> > A qué te referís con arrastrar.  Yo intenté hacer ADD CLASS
> > pero el error me sigue apareciendo
>
> > Ricardo Luis Peña
> > Analista de Sistemas
> > BA - Argentina
>
> >  ------------------------------
>
> > From: yvan.carra...@gmail.com> To:publice...@googlegroups.com
> > Subject: RE: [vfp] Convertir VFP 7 a VFP 9 SP2
> > Date: Thu, 30 Jun 2011 08:57:28 -0500
>
> > Hola Ricardo,
>
> > En mi caso yo me pasé de 6 a 9.. y también tuve problemas con las clases..
> > lo que hice fue:
>
> > Crear una nueva librería de clases y arrastrar las clases de  la librería
> > antigua a la actual, luego elimine la antigua y renombre la nueva y todo OK.
>
> > *De:*publice...@googlegroups.com[mailto:>publice...@googlegroups.com]*En nombre de *ricardo peña
> > *Enviado el:* Jueves, 30 de Junio de 2011 08:53 a.m.
> > *Para:* GRUPO-VFP GRUPO-VFP
> > *Asunto:* RE: [vfp] Convertir VFP 7 a VFP 9 SP2
>
> > Estoy convirtiendo de vfp 7 a vfp 9 sp2 y cuando intento
> > reconstruir el proyecto me aparece un cartel que dice:
>
> > Memo file c:\misistema\libs\misclases.vct is missing or is invalid
>
> > Desde ya el archivo misclases.vcx y misclases.vct existen, lo que me
> > hace suponer que el archivo vct es inválido.
>
> > ¿ Hay alguna forma de salvar este inconveniente o tengo que
> > generar las clases otra vez ?
>
> > Ricardo Luis Peña
> > Analista de Sistemas
> > BA - Argentina
>
> >  ------------------------------
>
> > Date: Wed, 29 Jun 2011 10:29:56 -0300
> > From: luismar...@gmail.com> To:publice...@googlegroups.com
> > Subject: Re: [vfp] Convertir VFP 7 a VFP 9 SP2
>
> > Ningun cambio, solo debes tener en cuenta algunos cambios de
> > comportamientos como el GROUP BY y el nuevo sistema de reportes.
>
> > Para compatibilidad con VFP7 solo deberias hacer
>
> > SET ENGINEBEHAVIOR 70
> > SET REPORTBEHAVIOR 80
>
> > Pero no es lo mas recomendado, es conveniente que hagas los cambios en tus
> > SELECTs y REPORTs
>
> > *Luis María Guayán
> > Tucumán, Argentina
> > _________________________
> >http://www.PortalFox.com<http://www.portalpox.com/>
> > Nada corre como un zorro
> > _________________________*

Ricardo Pina

unread,
Jul 7, 2011, 6:36:48 PM7/7/11
to publice...@googlegroups.com
Hola Mario
 
Eso lo podes solucionar con la función NVL(), el tema es que VFP7 devolvia el campo con valor 0 y el VFP9 retorna con el valor null y hay que contemplarlo al pasar de una versión a otra.
 
Saludos

Jose Luis Alzabe

unread,
Jul 8, 2011, 9:57:45 PM7/8/11
to publice...@googlegroups.com
TEngo que hacer una modificacion con foxprow 2.6 para windows.- La consulta es para ver si me pueden ayudar:
En un campo tengo incoporar un dato que sale de descomponer un numero de 26 digitos a 5 digitos que salen de ahi pero si el valor es cero el campo debe estar disponible para incorporar el dato a mano.-
Ejemplo: a=6734019999000123456700000-1
b=substr(a, 21,5)
Si b<>0 ----> lo incorpora al campo, caso contrario, es decir b=0 -------> debe dejar el campo en edicion para que se pueda incorporar a mano el valor.-
Espero que se entienda la consulta y que alguien me ayude.-
Muchas gracias.-
Jose Luis


 
El 7 de julio de 2011 15:56, Mario Alfredo <maov...@gmail.com> escribió:



--
Jose Luis Alzabe

Walter R. Ojeda Valiente

unread,
Jul 8, 2011, 10:03:30 PM7/8/11
to publice...@googlegroups.com
¿Y esto qué tiene que ver con convertir de VFP7 a VFP9 SP2?

Saludos.

Walter.




Date: Fri, 8 Jul 2011 22:57:45 -0300
Subject: Re: [vfp] Re: Convertir VFP 7 a VFP 9 SP2
From: huc...@gmail.com
To: publice...@googlegroups.com

Jose Luis Alzabe

unread,
Jul 8, 2011, 10:10:11 PM7/8/11
to publice...@googlegroups.com
Porque aproveche esta oportunidad pensando que ustedes son unos eximios especialistas en Fox.- Agregp ademad de la consulta anterior se puede convertir el Fox 2.6 a VFp9??
Saludos.- Jose Luis

--
Jose Luis Alzabe

Walter R. Ojeda Valiente

unread,
Jul 8, 2011, 10:19:15 PM7/8/11
to publice...@googlegroups.com
Pues te equivocaste en la forma de enviar tu pedido.

Cuando se trata de un tema nuevo debes abrir un hilo nuevo, no debes mezclar las cosas. Cada tema en su propio hilo, eso es lo correcto y lo que se te pedirá aquí.

Saludos.

Walter.




Date: Fri, 8 Jul 2011 23:10:11 -0300
Reply all
Reply to author
Forward
0 new messages