Dudas varias sobre C#

26/05/2004 - 20:26 por josu | Informe spam
Hola a todos y todas,

Tengo una serie de dudas/problemas con un proyecto en C#:

1) Tengo un codigo creado en VB 6.0 (tiene unas llamadas a unas dll's)
que necesito usar en mi proyecto, he hecho una "traduccion" a c# y no
me funciona pq tiene una llamada a una funcion de una dll y no se
ejecuta correctamente. Puedo generar una nueva dll en VB 6.0 y hacer
llamadas a una funcion de esa nueva dll desde mi codigo? lo digo pq lo
he intentado y obntego un mensaje de error diciendo q no encuentra el
punto de entrada a la nueva dll.

2) Es posible que una funcion de las dll's antiguas me funcione cuando
la llamo desde codigo VB 6.0 y no lo haga desde C#?

3) Necesito generar unos impresos desde mi aplicacion, existe alguna
clase para generar documentos y posteriormente imprimirlos? Si alguien
conoce la clase le agradeciria un pequeño ejemplo...

4) Y por ultimo, la aplicacion realiza consultas e inserciones de
datos sobre un servidor MS SQLServer, pero tb convendria poder hacerlo
sobre acces. El problema es q para insertar en sqlserver un dato de
tipo DateTime tengo q asignarlo con el siguiente valor, de lo
contrario se produce un error en tiempo de ejecucion:

"{t '"+ emp.HoraInicioJornada.ToShortTimeString() + ":00}"
emp es una instancia a una clase q contiene un atributo
HoraInicioJornada de tipo DateTime

En cambio para realizarlo en access me admite insertar los datos de la
siguiente manera (la normal desde mi punto de vista):

emp.HoraInicioJornada.ToShortTimeString()

Tengo alguna manera de unificarlo y q tan solo se diferenciase por el
string de conexion?

Un saludo

J

Preguntas similare

Leer las respuestas

#1 Diego Gonzalez
26/05/2004 - 21:32 | Informe spam
(te recomiendo generar un mail por cada pregunta, esto facilita que quien
tenga la mejor respuesta te responda la pregunta adecuada)

1) Debe ser un problema en la definición, porqué no pones la definición en
VB y te ayudamos a hacer la "traducción". Segro que puedes hacer un "puente"
usando VB6 y luego llegar a código nativo, pero lo mejor es hacerlo
directamente desde C#
2) Todo es posible, pero generalmente hay un error en la definición de C#
3) Puedes buscar información sobre CrystalReports
4) Lo mejor es usar los parámetros de SqlClient (u OdbcClient) dado que
convierten automáticamente un parámetro de tipo DateTime a su representación
en string.

Saludos,
Diego Gonzalez
Lagash Systems SA

"J&JJ" wrote in message
news:
Hola a todos y todas,

Tengo una serie de dudas/problemas con un proyecto en C#:

1) Tengo un codigo creado en VB 6.0 (tiene unas llamadas a unas dll's)
que necesito usar en mi proyecto, he hecho una "traduccion" a c# y no
me funciona pq tiene una llamada a una funcion de una dll y no se
ejecuta correctamente. Puedo generar una nueva dll en VB 6.0 y hacer
llamadas a una funcion de esa nueva dll desde mi codigo? lo digo pq lo
he intentado y obntego un mensaje de error diciendo q no encuentra el
punto de entrada a la nueva dll.

2) Es posible que una funcion de las dll's antiguas me funcione cuando
la llamo desde codigo VB 6.0 y no lo haga desde C#?

3) Necesito generar unos impresos desde mi aplicacion, existe alguna
clase para generar documentos y posteriormente imprimirlos? Si alguien
conoce la clase le agradeciria un pequeño ejemplo...

4) Y por ultimo, la aplicacion realiza consultas e inserciones de
datos sobre un servidor MS SQLServer, pero tb convendria poder hacerlo
sobre acces. El problema es q para insertar en sqlserver un dato de
tipo DateTime tengo q asignarlo con el siguiente valor, de lo
contrario se produce un error en tiempo de ejecucion:

"{t '"+ emp.HoraInicioJornada.ToShortTimeString() + ":00}"
emp es una instancia a una clase q contiene un atributo
HoraInicioJornada de tipo DateTime

En cambio para realizarlo en access me admite insertar los datos de la
siguiente manera (la normal desde mi punto de vista):

emp.HoraInicioJornada.ToShortTimeString()

Tengo alguna manera de unificarlo y q tan solo se diferenciase por el
string de conexion?

Un saludo

J
Respuesta Responder a este mensaje
#2 Anonimo
27/05/2004 - 09:21 | Informe spam
Podrías realizar una aportación explícita de código ?


Hola a todos y todas,

Tengo una serie de dudas/problemas con un proyecto en C#:

1) Tengo un codigo creado en VB 6.0 (tiene unas llamadas


a unas dll's)
que necesito usar en mi proyecto, he hecho


una "traduccion" a c# y no
me funciona pq tiene una llamada a una funcion de una


dll y no se
ejecuta correctamente. Puedo generar una nueva dll en VB


6.0 y hacer
llamadas a una funcion de esa nueva dll desde mi codigo?


lo digo pq lo
he intentado y obntego un mensaje de error diciendo q no


encuentra el
punto de entrada a la nueva dll.

2) Es posible que una funcion de las dll's antiguas me


funcione cuando
la llamo desde codigo VB 6.0 y no lo haga desde C#?

3) Necesito generar unos impresos desde mi aplicacion,


existe alguna
clase para generar documentos y posteriormente


imprimirlos? Si alguien
conoce la clase le agradeciria un pequeño ejemplo...

4) Y por ultimo, la aplicacion realiza consultas e


inserciones de
datos sobre un servidor MS SQLServer, pero tb convendria


poder hacerlo
sobre acces. El problema es q para insertar en sqlserver


un dato de
tipo DateTime tengo q asignarlo con el siguiente valor,


de lo
contrario se produce un error en tiempo de ejecucion:

"{t '"+ emp.HoraInicioJornada.ToShortTimeString()


+ ":00}"
emp es una instancia a una clase q contiene un


atributo
HoraInicioJornada de tipo DateTime

En cambio para realizarlo en access me admite insertar


los datos de la
siguiente manera (la normal desde mi punto de vista):

emp.HoraInicioJornada.ToShortTimeString()

Tengo alguna manera de unificarlo y q tan solo se


diferenciase por el
string de conexion?

Un saludo

J
.

Respuesta Responder a este mensaje
#3 josu
27/05/2004 - 11:27 | Informe spam
Hola:


1) Debe ser un problema en la definición, porqué no pones la definición en
VB y te ayudamos a hacer la "traducción". Segro que puedes hacer un "puente"
usando VB6 y luego llegar a código nativo, pero lo mejor es hacerlo
directamente desde C#



el codigo VB a "traducir" es el siguiente:

Global Const CARD_EXT = 1 '/* Lector externo */
Global Const CARD_INT = 2 '/* Lector interno */

Public Type CMD
Command As Long
Status(1 To 2) As Byte
Data As Long
DataSize As Byte
End Type


Public Declare Function CardReset Lib "CIMPNT.dll" (ByVal idCard As
Long, ByRef bf As Long) As Integer
Public Declare Function GetRefPtr Lib "CIMPNT.dll" (lpvoid As Byte) As
Long
Public Declare Function CardSendCommand Lib "CIMPNT.dll" (ByVal idCard
As Integer, scmd As CMD) As Integer
Public Declare Function CardReadCommand Lib "CIMPNT.dll" (ByVal idCard
As Integer, scmd As CMD) As Integer


Public Function Tarjeta_LeerDNI(ByRef dni As String) As Long

Dim scmd As CMD
Dim Command(1 To 4) As Byte
Dim Data(1 To 40) As Byte
Dim Memoria(1 To 50) As Long
Dim i As Integer
Dim ret As Integer

scmd.Command = GetRefPtr(Command(1))
scmd.Data = GetRefPtr(Data(1))

Command(1) = &H0
Command(2) = &HA4
Command(3) = &H4
Command(4) = &H0

Data(1) = &H50
Data(2) = &H20
Data(3) = &H0
Data(4) = &HFF
Data(5) = &H0
Data(6) = &H4
Data(7) = &H1

scmd.DataSize = &H7

dni = ""
ret = CardReset(CARD_EXT, Memoria(1))
ret = CardSendCommand(CARD_EXT, scmd)

Command(1) = &H0
Command(2) = &HA4
Command(3) = &H2
Command(4) = &H0

Data(1) = &H0
Data(2) = &H11

scmd.DataSize = &H2

ret = CardSendCommand(CARD_EXT, scmd)

Command(1) = &H0
Command(2) = &HB0
Command(3) = &H0
Command(4) = &H0

Data(1) = &H0
Data(2) = &H11

scmd.DataSize = &H1C

ret = CardReadCommand(CARD_EXT, scmd)

For i = 1 To 8
dni = dni & Chr(Data(i))
Next i

Tarjeta_LeerDNI = dni

End Function


Para que entendais un poco por encima se trata de una funcion que toma
los datos insertados en Smartcards, en este caso el dato es el DNI del
propietario. La funcion GetRefPtr asigna la variable la direccion en
memoria del parametro de entrada, de esta manera cuando hago
referencia a Command (1), estoy haciendo referencia tambien a
scmd.Command (1).

nada mas, muchas gracias por todo

Un saludo,
J
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida