Autor Tema: Visual Studio 2010 y mpusbapi.dll  (Leído 10283 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado jokep

  • PIC10
  • *
  • Mensajes: 8
Visual Studio 2010 y mpusbapi.dll
« en: 22 de Abril de 2010, 18:04:00 »
q tal, escribo aquí porque aquí están los que han hecho estos proyectos, relativos al USB

había trabajado con la mpusbapi.dll de microchip basandome en el ejemplo de J1M en C# 2008, y todo había funcionado de maravilla, pero cuando instalé la nueva versión de visual studio 2010 recientemente, a la hora del Debug me tira el siguiente error:

PInvokeStackImbalance was detected
Message: A call to PInvoke function 'Software1!PicUSB.PicUSBAPI::_MPUSBGetDeviceCount' has unbalanced the stack. This is likely because the managed PInvoke signature does not match the unmanaged target signature. Check that the calling convention and parameters of the PInvoke signature match the target unmanaged signature.

y no he podido hacerlo funcionar.

dato curioso: La opción Build no me marca ningún error, y con el archivo .exe del Release puedo correrlo. Porqué en modo Debug no me deja??? Es diferente la importación de Dll´s en el VS2010?

gracias
salu2

Desconectado jsepulveda

  • PIC10
  • *
  • Mensajes: 2
Re: Visual Studio 2010 y mpusbapi.dll
« Respuesta #1 en: 19 de Mayo de 2010, 23:55:10 »
He tenido el mismo problema y no he logrado continuar. He descargado la version express de VS c# 2010 para probar algunos  ejemplos de comunicación USB con un pic18f4550. El firmware lo he programado con ccs (pic-c)  pero a la hora de establecer la comunicacion con la aplicación no  he tenido ningún resultado positivo. Al realizar un debug desde VS obtengo el mismo problem que Jokep , "PInvokeStackImbalance". al parecer es algún inconveniente con la firma del método , no se si en .Net 4  las invocaciones de dll de terceros se ha puesto mas restrictiva, agradeceria si alguien tiene algún informacion respecto a esto.

Desconectado FJPPitta

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 116
    • Mi pagina personal
Re: Visual Studio 2010 y mpusbapi.dll
« Respuesta #2 en: 20 de Septiembre de 2010, 12:46:28 »
Ujules  . . . .  y yo que lo acabo de instalar para probar algunas cosas con pics :(, entonces a conseguir el 2008
Que la fuerza te acompañe

Desconectado jsepulveda

  • PIC10
  • *
  • Mensajes: 2
Re: Visual Studio 2010 y mpusbapi.dll
« Respuesta #3 en: 20 de Septiembre de 2010, 13:18:20 »
Ujules  . . . .  y yo que lo acabo de instalar para probar algunas cosas con pics :(, entonces a conseguir el 2008
Para que funcione con visual studio 2010 debes establecer en la configuracion del mismo que utilice .net 3.0 o .net 3.5. Cambiando esto y recompilando, tu aplicación comenzará a funcionar.

Desconectado FJPPitta

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 116
    • Mi pagina personal
Re: Visual Studio 2010 y mpusbapi.dll
« Respuesta #4 en: 21 de Septiembre de 2010, 02:14:11 »
Ujules  . . . .  y yo que lo acabo de instalar para probar algunas cosas con pics :(, entonces a conseguir el 2008
Para que funcione con visual studio 2010 debes establecer en la configuracion del mismo que utilice .net 3.0 o .net 3.5. Cambiando esto y recompilando, tu aplicación comenzará a funcionar.

Gracias por la información, apenas estoy en comenzar a experimentar con el 2010 ya que antes usaba el vb 6, voy a configurarle así como dices.

saludos
Que la fuerza te acompañe

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Visual Studio 2010 y mpusbapi.dll
« Respuesta #5 en: 28 de Septiembre de 2010, 18:26:16 »
Bueno. Fue una odisea, pero creo que algo he logrado.
Hace sólo 10 días que estoy con VB .NET y la verdad es que tengo opiniones ambiguas con respecto al mísmo, pero eso es para otro hilo...

Preparé este módulo para VB .NET 2010(4.0), ya que las llamadas a la mpsubapi.dll no funcionan como hasta en el .NET 2008.

No lo probé casi nada. Sólo probé la función de detección de dispositivos presentes. Se agradece si alguien ayuda a probarla. En los próximos días voy a probarla a fondo.

Por otro lado, el código base pertenece a la página  www.comvcon.com. Los créditos se han mantenido inalterados. Yo sólo modifiqué las llamadas a las DLL, después de leer en el foro de microchip un ejemplo para C++ (http://www.microchip.com/forums/tm.aspx?m=483657&high=mpusbapi+.net) y la msdn sobre convenciones de llamadas(http://msdn.microsoft.com/es-es/library/system.runtime.interopservices.callingconvention%28VS.90%29.aspx)

Para usarla, hace falta la mpusbapi.dll original, es decir, la que viene en conjunto con la MCHPFSUSB y usa llamadas no standard. Se podría usar con la otra cambiando la forma de hacer la convencion en cada llamada de CallingConvention:=CallingConvention.Cdecl  a CallingConvention:=CallingConvention.StdCall y tal vez tambien quitando el guion bajo al principio de cada funcion. Pero ya a eso lo debatimos después si quieren.

Un adjunto, y un saludo.
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Visual Studio 2010 y mpusbapi.dll
« Respuesta #6 en: 21 de Octubre de 2010, 15:04:24 »
He probado las funciones y funcionan correctamente en hardware real.

Saludos.
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado FJPPitta

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 116
    • Mi pagina personal
Re: Visual Studio 2010 y mpusbapi.dll
« Respuesta #7 en: 15 de Marzo de 2011, 16:03:02 »
Interesante el modulo BrunoF, voy a recopilar mis herramientas e intentare actualizar el proyecto que tengo, ya con eso debe de quedar y abrir las puertas para futura funciones, apenas lei tu respuesta y ya estoy pensando en como utilizarlo.

Muchas gracias por el dato.

Saludos
Que la fuerza te acompañe

Desconectado kamisama

  • PIC16
  • ***
  • Mensajes: 151
Re: Visual Studio 2010 y mpusbapi.dll
« Respuesta #8 en: 02 de Abril de 2011, 14:27:25 »
Como arruinaron a VB con .Net

No esto en contra de que se usen frameworks, pero VB dejo de ser lo poderoso que era (si, naturalmente no era poderoso pero se podia usar la api con librerias de C tranquilamente) para convertirse en un tipico producto micosoft. LENTO, CONSUMIDOR DE RECURSOS, CAPRICHOSO Y lo peor muy parecido al C en cuanto a llamadas y demas caprichos.

Para mi se hace sumamente tonto programar en .Net porque lo que tardaba en hacer 3 horas, ahora tardo 3 dias. Y generalmente hago soft en 3horas que a otros le llevaba 3 semanas. 3 dias esta bien, pero no puedo estar cocentrado y con todas las cosas en la cabeza para optimizar en 3 dias. Y encima es muy lento y consumidor, ademas del debugger pesimo a mi gusto.


 

anything