Foros del Web » Programación para mayores de 30 ;) » .NET »

equivalencias c# vs VB.net

Estas en el tema de equivalencias c# vs VB.net en el foro de .NET en Foros del Web. Saludos. Pues estoy haciendo un control de captura de imagen por webcam, y luego la imagen la "decodifico" a texto para poder almacenarla en mi ...
  #1 (permalink)  
Antiguo 07/02/2008, 01:58
 
Fecha de Ingreso: julio-2006
Ubicación: En algún lugar de un grán pais
Mensajes: 112
Antigüedad: 17 años, 9 meses
Puntos: 2
equivalencias c# vs VB.net

Saludos.
Pues estoy haciendo un control de captura de imagen por webcam, y luego la imagen la "decodifico" a texto para poder almacenarla en mi base de datos pero como texto...
BUeno, la idea hasta ahi bien.
El control lo estoy haciendo en c#

Pero me ha surgido varios problemas.
Para esto uso algunas apis para obtener la imagen, y esto en VB.net 2005 me va excelente, las apis son estas:

Public Declare Function SendMessage Lib "USER32" Alias "SendMessageA" (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByRef lParam As String) As Integer
Public Declare Function SendMessage Lib "USER32" Alias "SendMessageA" (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByRef lParam As Integer) As Integer
Public Declare Function SendMessage Lib "USER32" Alias "SendMessageA" (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByRef lParam As Long) As Integer
Public Declare Function capCreateCaptureWindow Lib "avicap32.dll" Alias "capCreateCaptureWindowA"(ByVal lpszWindowName As String, ByVal dwStyle As Integer, ByVal X As Integer, ByVal Y As Integer, ByVal nWidth As Integer, ByVal nHeight As Integer, ByVal hwndParent As Integer, ByVal nID As Integer) As Integer

y si las convierto a su "nemesis" en c# mequedan asi:


[DllImport("avicap32.dll", EntryPoint = "capCreateCaptureWindowA")]//,CallingConvention=CallingConvention.Winapi)]
public static extern int capCreateCaptureWindow (string lpszWindowName, int dwStyle, int X,int Y , int nWidth, int nHeight , IntPtr hwndParent, int nID );

[DllImport("USER32.dll", EntryPoint = "SendMessageA")]//, CallingConvention = CallingConvention.Winapi)]
public static extern int SendMessage (int hwnd ,int wMsg , int wParam ,Int64 lParam);

Bueno, hasta aqui bien, el problema es cuando ejecuto con lo siguiente:
mCapHwnd = ApiWebCam.MgsWinAPI.capCreateCaptureWindow("Webcam Captura", 0, 0, 0, 320, 240, (this.Handle), 0);
///intp
//Connect to capture device
System.Windows.Forms.Application.DoEvents();
ApiWebCam.MgsWinAPI.SendMessage(mCapHwnd, CONNECT, 0, 0);

(todo està en una clase con una namespace ApiWebCam, la clase se llama MgsWinAPI.
Me dice lo siguiente:

PInvokeStackImbalance was detected
Message: Una llamada a la función PInvoke 'ctrlCapturarImagencs!ApiWebCam.MgsWinAPI::SendMes sage' impidió la correspondencia de la pila. Es posible que la razón sea que la firma PInvoke administrada no coincida con la firma de destino no administrada. Compruebe que la convención y los parámetros de llamada de la firma PInvoke coinciden con la firma no administrada de destino.

Peeeero si se dan cuenta es exactamente igual lo de Vb que lo de C# no se si sea otra cosa o que pex....


alguien que me pueda ayudar?....


Otro caso es que en mi mixmo proyecto, la imagen obtenida en vb.net la paso al portapapeles, pero no la puedo pasa en c#
el codigo es asi:

picOutput.Image = My.Computer.Clipboard.GetImage()

esto funciona en VB pero en C# no!!!!!!
alguien me puede auxiliar?...
gracias.
  #2 (permalink)  
Antiguo 07/02/2008, 04:01
 
Fecha de Ingreso: julio-2006
Ubicación: En algún lugar de un grán pais
Mensajes: 112
Antigüedad: 17 años, 9 meses
Puntos: 2
Re: equivalencias c# vs VB.net

bueno, la segunda partela resolvi anexando Microsoft.Visualbasic, y luego creando una variable del tipo computer, asiqueda:

myComputer yl luego sigues usando lo mismo de vb....
  #3 (permalink)  
Antiguo 07/02/2008, 11:58
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Re: equivalencias c# vs VB.net

para mayor referencia

vb.net
Cita:
picOutput.Image = My.Computer.Clipboard.GetImage()
c#
Cita:
Microsoft.VisualBasic.Devices.Computer My = new Microsoft.VisualBasic.Devices.Computer();
picOutput.Image = My.Clipboard.GetImage();
Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #4 (permalink)  
Antiguo 07/02/2008, 13:29
 
Fecha de Ingreso: julio-2006
Ubicación: En algún lugar de un grán pais
Mensajes: 112
Antigüedad: 17 años, 9 meses
Puntos: 2
Re: equivalencias c# vs VB.net

Gracias RootK, si asi funcionó!!!!!... aunque en la mañana estuve leyendo que critican este tipo de uso poruqe sigue uno usando vb....
Existirà algun "metodo" propio dentro de c# ?...
  #5 (permalink)  
Antiguo 07/02/2008, 14:47
 
Fecha de Ingreso: julio-2006
Ubicación: En algún lugar de un grán pais
Mensajes: 112
Antigüedad: 17 años, 9 meses
Puntos: 2
Re: equivalencias c# vs VB.net

Ya lo solucionè....
bueno pu es la declaracion del api quedò asì:

[DllImport("avicap32.dll")] public static extern int capCreateCaptureWindowA([MarshalAs(UnmanagedType.VBByRefStr)] ref string lpszWindowName, int dwStyle, int X, int Y, int nWidth, int nHeight, IntPtr hwndParent, int nID);
  #6 (permalink)  
Antiguo 07/02/2008, 18:32
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Re: equivalencias c# vs VB.net

Cita:
bueno pu es la declaracion del api quedò asì:
para lo que necesitas no le veo caso hacer uso de API

Cita:
leyendo que critican este tipo de uso poruqe sigue uno usando vb....
A lo mejor no es una forma elegante, pero si ya lo hace que más da usarlo

Salu2
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 22:38.