The problem I am having is when importing the OBDII API, LabVIEW reports the following problem...
The function cannot be imported into LabVIEW. This might be caused by one of the following problems:
The function is not declared in the header file but is exported in the library.
Check the header file to make sure it contains declarations of the function.
Undefined symbols can prevent the wizard from recognizing functions and parameters. To correct this problem, check the header file to determine if you must add preprocessor definitions. Click the Back button to return to the previous page of the wizard to add a preprocessor definitionsl (for example, "NIAPI_stdcall = __stdcall" or "NIAPIDefined = 1").
All of the functions which have "Async" on the name and also OBDII_GetUnitScaling() and OBDII_ReadResponse().
I have searched the header files but can't find the necessary declarations.
Do you have any suggestions how to resolve this problem?
Technical Support Team
just a tip: be sure that you have all libraries. Remember that OBDII needs the other 3 dlls, ISO-TP (PCAN-ISO-TP.dll), UDS (PCAN-UDS.dll), and PCAN-Basic (PCANBasic.dll). All these files are to be placed together in the system folder of Windows or in the application output folder:
I overcame the first problem by inserting declarations in the obd2 header file for the functions which had a problem.
I basically copied the existing declarations and added "Async" to the function name where needed and this satisfied Labview to allow me to continue.
Now I just have to work out why the Labview shared library tool will is producing "Void" data types for all the functions in the ISO-TP, UDS and OBD 2 VIs. (The PCAN-Basic API was fine).
I'll come back and post the solution if and when we find it so that other Labview user on the forum can benefit.