Estoy intentando compilar el proyecto de ejemplo que se muestra here para C#. Tenía que convertirse a VS2010, pero funcionó bien. Se construye, se ejecuta, pero luego muere cuando intenta acceder a una función DLL.Error de tiempo de ejecución de C# DLL: crea, ejecuta pero arroja una excepción no controlada al intentar usar las funciones de DLL
Hice una serie de images para mostrar mis pasos. Como puede ver, el dispositivo que diseñé está conectado y configurado correctamente, pero realmente no creo que tenga nada que ver con el problema. Dentro del archivo Form1.cs, el siguiente comentario explica cómo utilizar la DLL:
/*
PLEASE NOTE
You must add a reference to the FTChipIDNet.dll in order to use this sample
To do this:
1. Click on Solution explorer tab.
2. Right click the References tree.
3. Choose Add Reference option.
4. Browse to the FTChipIDNet.dll (as a personal preference I place this in my bin directory)
5. Click OK
*/
he seguido las instrucciones anteriores y la referencia al espacio de nombres definido FTChipID se fijó. También revisé manualmente el buscador de objetos para asegurarme de que la función GetNumDevices existe y lo hace.
Al hacer clic en el botón produce este error:
DLLNotFoundException was unhandled:
Unable to load DLL 'FTChipID.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
en esta línea de código:
FTChipID.ChipID.GetNumDevices(ref numDevices);
Ahora, usted puede estar pensando "el error dice que necesita FTChipID.dll, no FTChipIDNet. dll ". Me pregunto lo mismo. Tengo FTChipID.dll junto con un archivo .lib y .h, pero no sé cómo usarlos o dónde deben estar para que este programa los pueda encontrar. He intentado añadir una referencia a FTChipID.dll, pero VS2010 dije
A reference to ...\FTChipID.dll could not be added. Please make sure that the file is accessible, and that it is a valid assembly or COM component.
No sé lo que eso significa tampoco. ¿Algunas ideas? Gracias por adelantado.
¿está agregando el .dll como parte de la referencia del proyecto ..? también está consumiendo el espacio de nombres de ese .dll .. también busca en el control de versiones de ese .dll .. o GAC si es necesario si el .dll es un .net 2.0 - 3.5 .dll frente a .net 4.0 .dll también eche un vistazo en la configuración de la propiedad del proyecto, asegúrese de que sea un proyecto 4.0. También intentaré compilarlo como un proyecto 3.5 para ver cuáles son las diferencias. – MethodMan
Agregue FTChipID.dll como salida en su proyecto (o cópielo a la carpeta bin \ Debug) y vuelva a intentarlo. Supongo que FTChipIDNet.dll es un envoltorio para el primero. – rene
Coloque FTChipID.dll en el mismo directorio que FTChipIDNET.dll. El marco debería poder localizarlo entonces. –