Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: diana.ss en 19 de Mayo 2016, 16:02

Título: System.DIINotFoundException: No se puede cargar el archivo DLL coredll.dll
Publicado por: diana.ss en 19 de Mayo 2016, 16:02
Hola a todos, verán, estoy haciendo un pequeño programa en C# que me devuelva el ID y el Serial de los dispositivos conectados en los puertos USB sin importar el tipo (no solo memorias), encontré una solución en la página oficial: https://msdn.microsoft.com/es-es/library/ms172516(v=vs.90).aspx , el problema es que mi Visual Basic (o tal vez mi código) no detectan el Core.dll ni el Coredll.dll aun cuando ya los tengo añadidos a la referencia y en mi importación "using" escribo el nombre correcto.

El error que me sale es el siguiente:

"El tipo o el nombre del espacio de nombres 'Core' no existe en el espacio de nombres 'System' (¿falta una referencia de ensamblado?)"

y en el DLL import [DllImport("coredll.dll", SetLastError = true)] ya eh especificado la ruta completa y no me permite entrar y me muestra el error que dejo en la imagen adjunta.

Por favor ayúdenme :'( :'( :'( :'( :'( :'( :(


ERROR: System.DIINotFoundException: No se puede cargar el archivo DLL coredll.dll
Título: Re:System.DIINotFoundException: No se puede cargar el archivo DLL coredll.dll
Publicado por: César Krall en 20 de Mayo 2016, 22:58
Hola! Con esto puede haber un "pequeño problema". Tendrás que instalar el paquete Microsoft Visual C++ 2102 Redistributable en cada ordenador donde quieras ejecutar este código. El problema está en que existen dependencias como entradas de registro, ficheros de configuración, etc. que deben estar presentes en el ordenador donde ejecutes el código. Es decir, no te basta con tener solo el DLL, te hace falta todo el paquete instalado

Saludos!
Título: Re:System.DIINotFoundException: No se puede cargar el archivo DLL coredll.dll
Publicado por: diana.ss en 23 de Mayo 2016, 16:45
Hola, muchas gracias por responder mi pregunta, he instalado el Redistributable de Visual c++, pero ahora me marca este error:

System.EntryPointNotFoundException: No se puede encontrar el punto de entrada denominado kernelIoControl en el archivo DLL 'coredll.dll'

Para ello, tengo mi codigo de la siguiente forma:


       [DllImport("coredll.dll", CallingConvention = CallingConvention.Cdecl)]
       private static extern bool KernelIoControl(Int32 dwIoControlCode,
           IntPtr lpInBuf, Int32 nInBufSize, byte[] lpOutBuf,
           Int32 nOutBufSize, ref Int32 lpBytesReturned);

No entiendo por que el error...  :'( :'(