Problem calling dylib | libEaseLase.dylib

Hi.

(I hope this question deserves to be asked in the advanced section.)

I have real problems working with an external dylib. The dylib is there, for controlling an ILDA devide that controls my soon to come laser.

I am working with osx 10.6.2 and xcode 3.2.1 and i have three files i somehow need to use:

libEasyLase.1.0.dylib
libftd2xx.0.1.3.dylib
http://say-nono.com/temp/easyLase.h

I think i made everything right but as soon as i try to use a function of easyLase.h i get following compile error:

  
Undefined symbols:  
  "easyLaseGetCardNum()", referenced from:  
      testApp::setup()     in testApp.o  
ld: symbol(s) not found  
collect2: ld returned 1 exit status  

i searched all over the internet without any solution.
I would be super grateful for help and hints.

Thanks.

V.

Here is the xcode project. Maybe that makes things clearer:
http://say-nono.com/temp/EasyLase-Test-New-01.zip

V.

OK. I finally found a solution and it seems to work.
I just needed to wrap it with this:
extern ā€œCā€ {
}

I hope this is THE way to do it right.

Vincent

Here for anyone that may is running into the same problem:

easyLase.h

  
  
extern "C" {  
	int easyLaseGetCardNum();  
	  
	int easyLaseWriteFrameUncompressed(int cardNumber, unsigned char *dataBuffer, unsigned int dataCounter, unsigned int speed);  
	int easyLaseWriteFrame(int cardNumber, unsigned char *dataBuffer, unsigned int dataCounter, unsigned int speed);  
	int easyLaseWriteFrameNR(int cardNumber, unsigned char *dataBuffer, unsigned int dataCounter, unsigned int speed, unsigned int repeat);  
	int easyLaseStop(int cardNumber);  
  
	int easyLaseWriteDMX(int cardNumber, unsigned char * dmxBuffer);  
	int easyLaseDMXOut(int cardNumber, unsigned char * dmxBuffer, unsigned int baseAddress, unsigned int channelCount);  
	int easyLaseGetDMX(int cardNumber, unsigned char * dmxBuffer);  
	int easyLaseDMXIn(int cardNumber, unsigned char * dmxBuffer, unsigned int baseAddress, unsigned int channelCount);  
  
	int easyLaseWriteTTL(int cardNumber, unsigned int ttl);  
	  
	int easyLaseGetLastError(int cardNumber);  
	int easyLaseGetStatus(int cardNumber);  
	  
	int easyLaseClose();  
	  
	typedef struct {  
		unsigned short x;  // 2 Bytes  Value 0 - 4095  X-Coordinate  
		unsigned short y;  // 2 Bytes  Value 0 - 4095  Y-coordinate  
		unsigned char  r;  // 1 Byte   Value 0 - 255   Red  
		unsigned char  g;  // 1 Byte   Value 0 - 255   Green  
		unsigned char  b;  // 1 Byte   Value 0 - 255   Blue  
		unsigned char  i;  // 1 Byte   Value 0 - 255   Intensity  
	} __attribute__((packed)) EasyLaseData, *EasyLasePoint;  
	  
  
}  

Hey would you happen to have the project you used to get it going? I am trying to get the easylase working, but this is a bit over my head.

Cheers

Fred