PDA

Visualizza la versione completa : [C++] Utilizzo di un API con C++Builder 6


mentu
18-10-2006, 01:08
Ciao a tutti,

sono alle prime armi nell'utilizzo di API in Borland C++ Builder 6. In pratica sto cercando di controllare una camera fiwire tramite il C++. Ho a disposizione la libreria fornita dal costruttore ma non riesco a farla funzionare.

La libreria si compone di:

PixeLINKApi.h //Qui vengono elecate tutte le funzioni contenute nella dll
PixeLINKCodes.h
PixeLINKTypes.h

PxLApi40.lib
PxLApi40.dll

Tutti i file sono stati messi nella directory del programma (PxLApi40.dll è anche presente in c:\windows\sistem32). Ho provato le seguenti istruzioni:

#include <PixeLINKApi.h> //PixeLINKCodes.h e PixeLINKTypes.h sono incluse in PixeLINKApi.h
#pragma lib PxLApi40

/*e chiamo la funzione PXL_RETURN_CODE PxLGetNumberCameras (OUT PU32 pSerialNumbers,IN OUT PU32 pNumberSerial); con: */

PxLGetNumberCameras(a,b); //naturalmente a e b sono definiti

e quando compilo mi dà il seguente errore:
[Linker Error] Unresolved external 'PxLGetNumberCameras' referenced from C:\PROGETTOT\C++\CAMERA_LINK\050 NF\UNIT1.OBJ

Dalla mia poca esperienza ho capito che legge il file h, in quanto dà il suggerimento per i parametri per completare la funzione, ma quando va a linkare non riesce ad entrare nella dll.

Grazie anticipatamente

Samuele_70
18-10-2006, 12:24
Prova a modificare la direttiva #pragma in questo modo :


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

Ciao.

oregon
18-10-2006, 12:35
Penso che la direttiva

#pragma comment

non sia utilizzata dal Borland Builder ... (ma potrei sbagliare ...)

Piuttosto, penso che dovresti trovare tra le opzioni, quella che ti fa indicare il percorso e il nome della libreria aggiuntiva (ovvero la PxLApi40.lib).

P.S. Il linker non "entra" nella dll ... semplicemente importa le informazioni sulle funzioni richiamate dalla .lib

Samuele_70
18-10-2006, 12:52
Originariamente inviato da oregon
Penso che la direttiva

#pragma comment

non sia utilizzata dal Borland Builder ... (ma potrei sbagliare ...)

Garantisco che funziona ... :)

mentu
18-10-2006, 17:26
Ciao a tutti,

ho risolto attraverso Project->Add to Project... però prima la libreria va modificata utilizzando
coff2omf PXLAPI40.LIB PXLAPI40_PER_BORLAND.LIB

Grazie a Fabulo del NG http://groups.google.it/group/it.comp.programmare.win32.

Grazie a tutti

Loading