Hello,
I'm using CVI2013 on Win7.
I have a DLL project proj1.dll where I declared a function "GetExxotestList" like this :
int __attribute__((overloadable)) GetExxotestList (int *NbCardUSB, int *NbCardPCI, struct DEVICE *Device[8])
DEVICE is a struct declared in the same .c file like this :
struct DEVICE { unsigned long d; .... };
In the .h file of this project, I declared only the function prototype like this :
int __attribute__((overloadable)) GetExxotestList (int *NbCardUSB, int *NbCardPCI, struct DEVICE *Device[8]);
And I compile it with no errors.
Now, in the Main project (executable) I wanted to call this function inside a callback function, so I did like this :
int CVICALLBACK Refresh_Exxotest_Panel_CB (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { int NbExxoCardUSB = 0; int NbExxoCardPCI = 0; struct DEVICE *Device[8]; switch (event) { case EVENT_COMMIT: //Update exxotest list GetExxotestList (&NbExxoCardUSB, &NbExxoCardPCI, Device[8]); break; } return 0; }
In the Main project, I added the .lib and .h files of the dll project.
The problem is when I try to compile the Main, I have this link error :
error: Undefined symbol '__Z15GetExxotestListPiS_PP6DEVICE' referenced in "c:\ProjectX\Sources\Main\cvibuild.Main\Debug\Main.obj".
I can't undrestund why !
What is weird too, is that "Z15" and "PiS_PP6" labels are added automatically in the error message, I don't know what is it.
Please advice,
best regards,
Houssam