PDA

Ver la Versión Completa : Conectar DLP USB 245


omarodalis
05-10-2011, 18:58:29
Discilpen amigos.. tengo un problema y les agradecería su ayuda... Estoy realizando un programa en c++ builder 2010 para conectar un DLP USB 245, estoy utilizando el FTDI para ello incluyendo FTD2XX.H, FTD2XX.DLL y FTD2XX.LIB, en mi proyecto ahi tengo todos estos elementos, (.h, .dll, .lib) en mi programa tengo lo siguiente:
#include <vcl.h>
#pragma hdrstop
#include "ConectarDLP.h"//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
#include "ftd2xx.h"
#include <stdio.h>
TForm1 *Form1;
__fastcall TForm1::TForm1(TComponent* Owner): TForm(Owner)
{
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
FT_STATUS Status;
DWORD numDevs;
Status = FT_ListDevices (&numDevs, NULL, FT_LIST_NUMBER_ONLY); ///
}
Y al compilar me sale este error:
[ILINK32 Error] Error: Unresolved external 'FT_ListDevices' referenced from C:\USERS\NAILA\CONEXIONDLP\DEBUG\CONECTARDLP.OBJ
Como se darán cuenta en mi clase yo incluyo a ftd2xx.h.. include "ftd2xx.h" .. ¿Como puedo solucionar esto? he buscado pero no encuentro la solucion por ello acudo a ustedes.. porfas necesito una ayudota.. saludos ... mi correo omar_1314@hotmail.com....

ecfisa
05-10-2011, 19:57:43
Hola omarodalis y bienvenido a ClubDelphi. :)

Te invito a que leas la Guía de estilo (http://www.clubdelphi.com/foros/guiaestilo.php), en el punto 8 de la misma dice:

No solicites que te respondan por correo en privado

Los problemas deben ser un proceso público y transparente, durante el cual un primer intento de respuesta puede y debería corregirse si alguien con más conocimientos percibe que la respuesta es incompleta o incorrecta. Además quién te responde obtiene parte de su recompensa al verse que son competentes y útiles a nuestra comunidad.

Cuando pides una respuesta privada, estás interrumpiendo tanto el proceso como la recompensa. No lo hagas.


Saludos y gracias por tu colaboración.

omarodalis
06-10-2011, 16:56:58
lo siento por el correo... ... porfavor necesito ayuda... ya busque por todos lados... saludos

ecfisa
06-10-2011, 21:00:09
Hola omarodalis.

Quizá ya lo hayas leido pero por las dudas: FTDI linker error.... (http://www.codeguru.com/forum/showthread.php?t=396039)

Donde comenta haberse olvidado la línea:

#pragma comment(lib, "FTD2XX.lib")


Realmente lamento brindarte una ayuda tán pobre, pero no tengo idea sobre el tema. De todas maneras hay muchos compañeros que entrarán próximamente y tal vez sepan algo sobre esto.

Un saludo. :)

escafandra
06-10-2011, 21:14:14
Efectivamente, ecfisa, ese es el problema. Parece que no ha incluido FTD2XX.lib en el proyecto.

Para que el linker enlace con la dll e importe sus funciones se debe realizar de dos formas.
1.- Se incluye en la lista de archivos del proyecto.
2.- O se incluye la linea #pragma comment(lib, "FTD2XX.lib")

Con cualquiera de las dos formas se enlazará con la dll.
Yo prefiero la línea pragma pues cuando tengo que echar mano del código no me tengo que preocupar de incluir la librería en el proyecto...

Saludos.

omarodalis
08-10-2011, 19:58:00
Gracias ecfisa, escafandra, por las respuestas, me faltaba esa librería, ya lo incluí pero aun me sigue sacando el mismo error en esta linea de código:
ftStatus = FT_ListDevices(&numDevs,NULL,FT_LIST_NUMBER_ONLY);
Error:Unresolved external 'FT_ListDevices' referenced from C:\USERS\NAILA\DEBUG\CONEXION.OBJ

Pero lo bueno es que me deja utilizar otras funciones como .... ftStatus = FT_Open(0,&ftHandle); ya voy avanzando con mi trabajo y he dejado este problema para resolverlo luego.

El trabajo es sobre una interfaz para manipular algunos valores de FPGA pero primero estoy conectando el DLP USB 245... puse un link pero no me deja.. bueno en google escriban DLP USB 245 y la documentacion y los drivers stan en el primer link ...

Quizas muchos ya lo saben pero algunos no, como yo hace poco jaja.. En el proyecto que se esta realizando se debe incluir el FTD2XX.H.... #include "ftd2xx.h" y en el proyecto agregar el ftd2xx.lib, son dos cosas basicamente... Les muestro un pedazo de mi programa



FT_STATUS ftStatus;
DWORD numDevs,bytesTransmitidos;
FT_HANDLE ftHandle;
int Datos[2];

ftStatus = FT_Open(0,&ftHandle);
if (ftStatus == FT_OK) {

ShowMessage("Puerto USB Conectado");

Datos[0] = 1; // datos a enviar
Datos[1] = 0;
ftStatus = FT_Write(ftHandle,&Datos,2, &bytesTransmitidos);
if(ftStatus==FT_OK){
///codigo
}else{
ShowMessage("Error al enviar los datos");
}
}
else {
ShowMessage("Puerto USB Not Found");
}

Solo queria aportar algo jaja... Y de nuevo muchas gracias.. y por supuesto si alguien tiene la solucion a este error le agradeceria mucho que me ayudara, y tambien si alguien tiene una duda, aki stamos.... saludos

escafandra
09-10-2011, 01:14:28
...aun me sigue sacando el mismo error en esta linea de código:
ftStatus = FT_ListDevices(&numDevs,NULL,FT_LIST_NUMBER_ONLY);
Error:Unresolved external 'FT_ListDevices' referenced from C:\USERS\NAILA\DEBUG\CONEXION.OBJ

Pues ese error es debido a una sola cosa. Tienes incluida la definición de FT_ListDevices en un archivo cabecera.h u otro lugar de tu código, pero no lo tienes implementado. En otras palabras, no está en la librería que enlazas.

Comprueba que esa función esta en la dll que manejas y que no te hace falta otra. Para eso puedes usar IMPDEF en línea de comandos. Generará un archivo .def con los nombres de las funciones que exporta tu dll.

Para generar un nuevo .lib desde tu dll usa IMPLIB en línea de comandos.

Saludos.

omarodalis
09-10-2011, 18:44:38
muchas gracias por la ayuda.. voy a checar lo que me acabas de comentar y luego les cuento que pasa... saludos y de nuevo gracias :)