TestStand CVI OI link errors

I was given a .UIR file from a teamate (another company), but no implementation, so that our GUI could ultimately look and feel like theirs (since that's what the customer wants).  I'm using CVI 8.0 and I opened up the .UIR and ran the UI to Code Converter tool.  Since the tool forces you to enter the name of the .h and .c target files (associated with the panel), I ran the tool one panel at a time.  Ultimately, I had about eight .h and eight .c files.  When I do a 'create executable', I get 60 link errors.  The messages are all quite similar (but for different symbols) in that they say "Undefined symbol, '_SD_ExeEntryPoint1' referenced in SeqDisp.c".  I see where I use SD_ExeEntryPoint1 (no underscore in front), but I don't see where the _(underscore) version is coming from/being referenced.  Any clues here would be very appreciated.
In general, though, is this a correct approach?  Can I begin with a UIR that has much of the TestStand full-featured OI functionality available in its different panels and generate code, then begin filling in each template that's produced?

You can find a new style OI in:
C:\Program Files\National Instruments\TestStand 3.<x>\OperatorInterfaces\NI\Full-Featured\CVI\
I don't have an old TestStand installed to be sure, but the old style OI would probably be found in:
C:\Program Files\National Instruments\TestStand <1.x or 2.x>\OperatorInterfaces\NI\Full-Featured\CVI\
The old style example has a lot more code and that code is more complicated than the code in the new style example.
The UIR you have is a CVI file, thus converting it to TestStand 3.5 doesn't apply.
If you have to implement the whole application from scratch (instead of from the source code that goes with the UIR you have), you will probably be better off in the long run by starting the example from TestStand 3.5 and modifying it using the UIR you received as a user interface specification of sorts.
Controls on the old UIR that did "TestStand" things like display the steps in a sequence are now ActiveX controls in the new example which you configure and connect to other controls. In the old example, the function of these controls was entirely implemented in the example source code and the result was complex code with less functionality.
If there are controls in the UIR that were not part of the old example and do not directly implement "TestStand" functionality, you can probably just cut and paste them into the UIR from your 3.5 example and implement their callbacks according to their function.
BTW. I'm not sure I completely understand your situation were you have been given the UIRs but not the source for application and tasked with reimplementing it.  Assuming the source code is absolutely not available and that you have to make significant modifications from the functionality the TestStand examples provide, then the new example is a better starting point. However, it won't look "exactly" the same. In many cases it will look better. Run the old and new examples to see the difference.

Similar Messages

  • Linker error during TestStand deployment

    Using Version - LabVIEW 2014 and TestStand 2014
    Test Stand deployment failed so I am trying to narrow down the issue.
    Note:
    1. Create Installer option is not selected
    2. Everything has been mass compiled in LabVIEW 2014
    Step 1 -
    1. Selected Folder A which has around 70 LabVIEW controls 
    2. Build is successful
    Step 2 -
    1. Selected One single VI from Folder B
    2. Build Successful
    Step 3 -
    1. Selected that same VI from Folder B and Selected Folder A (combining step 1 and 2)
    2. Build Fail
    "LabVIEW returned a linker error but did not return any missing VIs. This can mean that the missing files are RC files or other similar dependencies. Mass compile your top-level files and resolve the errors reported. If the problem persists contact National Instruments for support."
    Other than "Enable SSE2 Optimization" none of the options are selected from LabVIEW VI Options.
    Any idea?
    Thanks,
    VS

    This may be useful:
    http://digital.ni.com/public.nsf/allkb/19F78E0B290BFA63862574F8005A9303

  • Link errors for Labwindows CVI.

    I am currently trying to implement the exer1.cws example from the Cvi sample and tutorials section.
    But i get 9 Link errors while trying to generate the DLL.
    I have attached the Link errors as a txt file.
    Please tell me whats wrong with the program??
    I have incorporated the RTmain as entry point function of the program.
    I have initialised variables used in the main program globally.
    Other user interface functions have also been defined outside the body of the Rtmain program.
    Hope this info is sufficient.
    Regards
    raghu
    Solved!
    Go to Solution.
    Attachments:
    ERRORS.txt ‏1 KB

    Hey , Thanks for the reply.
    The tutorial asks us to select the Option as 'Real Time Only'.
    I reverted to 'Full Run-time engine' as you asked.
    But there is no change.
    Although i did debug most of the erros.
    I just included the Functions in the headerfile.
    But even though, i am stuck with two errors.
    I am attaching the complete set as txt file.
    Please see if you notice anything unorderly.
    Attachments:
    ERRORS.txt ‏1 KB
    exer1.c ‏3 KB
    exer1.h ‏2 KB

  • VC++ 6 Linker Errors from converted CVI project

    I am getting numerous LNK2005 link errors for functions within the following .obj files: easytab.obj
    inifile.obj
    toolbar.obj
    The weird thing is that all of them say that the functions are like this:
    toolbar.obj : error LNK2005: _Toolbar_GetCtrlFromDescription already defined in toolbar.obj
    I also get several LNK2001 errors (unresolved external symbol)
    Any help will be greatly appreciated.
    Thanks,
    Richard

    It sounds like you have these OBJ files included twice in the VC++ project. Check and see in the Project->Settings... under the Link tab if they are listed twice. If they are, remove the duplicate entries. Even if they aren't you may want to try removing them from this list in case they are being linked again in another way.
    Best Regards,
    Chris Matthews
    Measurement Studio Support Manager

  • Works in 2009, Link errors in 2013 SP1

       I have a system that runs rack mount test instruments.  I have a system DLL that performs different generic  functions for me and also included custom driver functions for the instrumentation.  This DLL is built and the different driver .h/.fp files and the system DLL library file are distributed.  The distributed files are included in various test projects.   
       This approach has worked for the last 2 years using CVI2009.  I recently started trying to use CVI2013 SP1.  The system DLL still builds with no errors.  However, my various test DLL that use the distributed files, now compile fine, but have Undefined symbol link errors.  The link errors point to functions and structures that are global to the system DLL, but weren't meant for exported use by the test DLLs.  The files the link errors call out are .obj files for a couple of different system drivers that are located in the build folder that CVI created.  Anyone experienced anything like this while upgrading to CVI2013?

    Hello HeadTrauma, 
    I think it might be worth checking that you have your library set to a dynamically linked library.  The behavior you are receiving seems akin to changing a dynamically linked library to a statically linked library.  This could happen automatically in an upgrade.  For information on how to set this, please view the following link: 
    http://digital.ni.com/public.nsf/allkb/BF8084DB74021EE986257AB200001737
    Best wishes!
    Amanda B.
    Applications Engineer
    National Instruments

  • Excelrepor​tdemo project link error with CVI2010 on windows 7, 64-bit operating system

    I am trying to run the excelreportdemo project in CVI2010 on windows 7, 64-bit operating system. I have the Excel2013 installed as well. I have chosen the build configuration as release or debug for 32 bit system so to be compatible for the test platform for production.
    However, I get 12 Project link errors as following:
    Undefined symbol '_ExcelRpt_RangeBorder@24' referenced in "excelreportdemo.c".
    Undefined symbol '_ExcelRpt_WriteDataFromTableControl@16' referenced in "excelreportdemo.c".
    Undefined symbol '_ExcelRpt_SetCellValue' referenced in "excelreportdemo.c".
    Undefined symbol '_ExcelRpt_SetCellRangeAttribute' referenced in "excelreportdemo.c".
    Undefined symbol '_ExcelRpt_ChartAddtoWorksheet@40' referenced in "excelreportdemo.c".
    Undefined symbol '_ExcelRpt_ChartWizard@52' referenced in "excelreportdemo.c".
    Undefined symbol '_ExcelRpt_SetChartAttribute' referenced in "excelreportdemo.c".
    Undefined symbol '_ExcelRpt_WorkbookNew@8' referenced in "excelreportdemo.c".
    Undefined symbol '_ExcelRpt_ApplicationNew@8' referenced in "excelreportdemo.c".
    Undefined symbol '_ExcelRpt_ApplicationQuit@4' referenced in "excelreportdemo.c".
    Undefined symbol '_ExcelRpt_WorkbookClose@8' referenced in "excelreportdemo.c".
    Undefined symbol '_ExcelRpt_WorksheetNew@12' referenced in "excelreportdemo.c".
    I have found a previous dicussion back in 2007. Unfortunately it did not help for the same problem on my new machine and CVI2010. Could anyone give me help on this/
    Thanks!
    Yuwei
    Solved!
    Go to Solution.

    The previous discussion link is pasted below:
    http://forums.ni.com/t5/LabWindows-CVI/Problems-adding-the-activex-instrument-e​xperiencing-undefined/m-p/580608/highlight/true#M3​1390
    It did not solve my problem, but may spark your idea of helping me.
    Thanks a lot!
    Yuwei

  • Teststand 4.1dispose method error

    TestStand 4.1 return error code -17500,  the .NET method Dispose threw an error - method not found.
    I did find here that this was reported as a issue with TS4.1. Does anyone know how to resolve this?
    Thanks!!
    CLD,CTD

    I do not think the error you are seeing is the same as the one reported in the link you supplied. The error in the link you supplied is just that any object reference variables you pass into a method are freed if the method throws an exception back to teststand. If this is really the cause of the error you are seeing you could work around it by catching the exception on the .NET side and returning the exception info back up to teststand as parameters rather than by throwing the exception back up to TestStand, but again, I do not think this is the issue you are running into. I think the issue you are running into is that you have a parameter marked as Dispose (the dispose checkbox for the parameter checked), yet the object stored there perhaps does not property implement IDispose. Just a guess though. If you can provide more information, or instructions for reproducing the problem, we can better determine the cause.
    By the way, the issue you posted a link to is fixed in TestStand 2010.
    Hope this helps,
    -Doug

  • Linking error cvistart.lib

    Hi,
    I'm trying to build a DLL and i get the following errors:
    4 Project link errors
      Undefined symbol '___UFRNameTable' referenced in "c:\program files\national instruments\cvi81\bin\cvistart.lib".
      Undefined symbol '___CompiledDebuggingLevel' referenced in "c:\program files\national instruments\cvi81\bin\cvistart.lib".
      Undefined symbol '___PtrInfoFixupTable' referenced in "c:\program files\national instruments\cvi81\bin\cvistart.lib".
      Undefined symbol '___CVI_Sections' referenced in "c:\program files\national instruments\cvi81\bin\cvistart.lib".
    I tryed it on two machines and i also tryed to create an exetuable (after adding main function to the project).
    I also tryed to create a new project
    Thanks for help

    I am having the exact same problem, but only when do a release build.  The debug build works fine.
    Errors generated when performing a 'release' build'
    clear_history_ecu_data.prj(Release) - 4 link errors
     Undefined symbol '___CompiledDebuggingLevel' referenced in "c:\program files\national instruments\cvi2009\bin\msvc\cvistart.lib".
     Undefined symbol '___PtrInfoFixupTable' referenced in "c:\program files\national instruments\cvi2009\bin\msvc\cvistart.lib".
     Undefined symbol '___CVI_Sections' referenced in "c:\program files\national instruments\cvi2009\bin\msvc\cvistart.lib".
     Undefined symbol '___UFRNameTable' referenced in "c:\program files\national instruments\cvi2009\bin\msvc\cvistart.lib". 
    I am using CVI 2009.
    I have deleted the build folder and marked all for recompile.
    Any suggestions?
    Thanx,
    thefalk

  • Linker error using extern with 2 libs

    Hi,
      I have written two libraries, both libraries need to share access to a variable, GblVal. So in one lib, when GblVal is changed, the other lib should also see this change.
    I have tried to achieve this through extern in the following setup:
    lib1:
    lib1.c:
    int GblSum;
    void Do(){
    GblSum=1;
    lib1.h:
    extern int GblSum;
    lib2.c:
    #include "lib1.h"
    void check(){
    printf("%d",GblSum);
    finally I have a main process that has both compiled libs
    main.c:
    Do();
    check();
    obviously my code doesn't actually do the above, but this is just the gist of what I'm trying to do. I'm fairly certain that I am setting my extern variable up right, however I can't compile lib2 due to:
    Undefined symbol "_GblNum" referenced in lib2.c
     what am I doing wrong? I have suspicions that this is a linker error but I'm not really sure how to fix it.
    thanks

    Static libraries (usual file extension .lib) are simply collections of compiled object files. To use functions and data contained in a static library in an application, the library must be specified as one of the input files to the application. At link time, the linker searches the library to resolve unsatisfied function and data references and extracts the object modules required to satisfy them.
    Dynamic Link Libraries (usual file extension .dll) are compiled and linked code modules (that is, they contain their own run-time support) that expose the addresses of particular functions (and, less often, data items) contained within the module. If an application uses functions from a dynamic link library, the DLL is also loaded when the application is run and the function/data addresses made known to the application. DLLs are most often used to share common code between applications, but because they are self-contained they are also a common way of building applications using different technologies (e.g. a CVI application can use a DLL built using Delphi or VC++).
    Normally, a DLL is associated with an import library which is linked in with the calling application. This import library resolves references to functions and data in the DLL used by the calling application by 'telling' the application which DLL the functions are in and how to find them in that DLL. Applications can also explicitly load DLLs at run-time if required.
    Martin
    Certified CVI Developer

  • Linker error Multiple definitions for symbol

    Hi,
    I have ported a project from Linux-based DAQmx to LabWindows CVI 2012 on a PXI machine. After making all conversion requirements, and successfully compiling, I am getting tons of the following linker errors for various modules files (just pasting
    a subset of those here):
    Multiple definitions for symbol '_PtrToPtr64' in modules X and Y
    Multiple definitions for symbol '_Ptr64ToPtr' in modules Z and Y
    Multiple definitions for symbol '_HandleToHandle64' in modules X and Y
    Multiple definitions for symbol '_HEAP_MAKE_TAG_FLAGS' in modules X and Y
    Multiple definitions for symbol '_TpInitializeCallbackEnviron' in modules X and Y
    I found this relevant post: http://forums.ni.com/t5/LabWindows-CVI/CVI2010-clang-link-errors-with-Windows-SDK/td-p/1425690
    which points to a known issue in CVI 2010. However the workaround (enabling C99 build option) is already set in my project, so this solution does not apply.
    Any idea what could be causing these windows.h symbols to get redefined?
    Thank you
    Solved!
    Go to Solution.

    Anjelica-W wrote:
    Can you run other examples that are accessing the Windows SDK without linker errors?
    You can also try adding import libraries for functions that are not automatically linked as suggested in this KnowledeBase article.
    Thanks for your reply. Yes I can run some basic apps that use windows.h without these linker errors, but cannot figure out the difference with mine. One more thing that could help diagnose the issue: Some of these fuctions are defined in file basetsd.h
    located in CVI2012\sdk\include, an excerpt of that code is below, which seems to be added by CVI. Is it possible that these are also defined somewhere else, causing the conflict? How can I see the linker options in CVI and find the path that it searches for libraries to link?
    // ADDED TO BY CVI
    #if !(defined (_CVI_) && defined (_INTERACTIVE_WINDOW_BUILD_))
    __inline
    void * POINTER_64
    PtrToPtr64(
    const void *p
    return((void * POINTER_64) (unsigned __int64) (ULONG_PTR)p );
    __inline
    void *
    Ptr64ToPtr(
    const void * POINTER_64 p
    return((void *) (ULONG_PTR) (unsigned __int64) p);
    __inline
    void * POINTER_64
    HandleToHandle64(
    const void *h
    return((void * POINTER_64)(__int64)(LONG_PTR)h );
    __inline
    void *
    Handle64ToHandle(
    const void * POINTER_64 h
    return((void *) (ULONG_PTR) (unsigned __int64) h );
    #endif /* _CVI_ */

  • Link error in VC++ 6.0 accessing sequencecontext

    I'm trying to access the sequencecontext in my VC++ dll. But when I add the NI default code line
    "_bstr_t lastUserName = context->GetValString("StationGlobals.TS.LastUserName", 0);"
    I get an link error on this row, error meassege.
    "error LNK2001: unresolved external symbol "public: class _bstr_t __thiscall TS:ropertyObject::GetValString(class _bstr_t,long)" (?GetValString@PropertyObject@TS@@QAE?AV_bstr_t@@V3@J@Z)
    Debug/dlltest.dll : fatal error LNK1120: 1 unresolved externals"
    This code line is created by NI TestStand, why doesn't it work ? Sending GPIB commands to instrument works, etc. The dll is accesseble from TestStand except from the code line above.
    Regards
    Fredrik

    Hi Fredrik,
    You should use the #import directive in your project to include the TS namespace within your current context. With this all of the objects and methods exposed by the TestStand API will be available to you. Basically, you do this with a line like this at the top of your code:
    #import "\bin\teapi.dll"
    Where is the directory that you installed TestStand too.
    Other than this, you might want to explain what you mean when you say that this is "the NI default code line" and that "this code line is created by NI TestStand". Do you mean that you copied this from an example into your source file, or are you just trying to use one of our examples and it won't build properly?
    Jason F.
    Applications Engineer
    National Instrument
    s
    www.ni.com/ask

  • RegExpr_FindPatternInText Link Error

    I'm trying to use function RegExpr_FindPatternInText.  I have included regexpr.h at the top of my source file, and I have regexpr.fp loaded and added to my project.  The program compiles just fine, but won't link.
    The link error is       Undefined symbol '_RegExpr_FindPatternInText@36 referenced in "main_updated.c".
    What else must I do to get the program to link this function in?
    Thanks.

    If you have moved regexpr.fp ro regexpr.obj after you added it to your project, it can cause confusion when CVI tries to link. You can load the fp file from either the toolbox directory or you can copy both it and the obj file to your project directory and then load it from there. Once you load the fp and your project links correctly, then add the instrument to your project so that the relationship is saved with your project.
    National Instruments
    Product Support Engineer

  • NiseCfg library link errors - will not compile working code on replicate system

    i have working software trying to install on a replicate system.    it does not compile on the replicate system.   the problem is nise, niseCfg link errors  for example:  
    Undefined symbol:  '_niseCfg_GetVirtualDeviceProperty@20' referenced in "TestSystem_Config.c"
    originally it complained it couldn't find the nise.h and niseCfg.h header files.   i copied the header and some other object and fp files (yeah, yeah, i know :-/ from my working system to the replicate system (in the NI/Shared/CVI directory path).
    it then found the header file and prototypes but now the undefined link errors.   i have nise.dll in my WIndows System directory.
    Please help.   what do i do to fix this?   thanks!

    The CVI IDE needs to know someway where to find the resources your program is using and this can be done in several ways. One of them is loading the instruments in the Instrument menu: this is valid if your instrument is used in only one project of yours or a few one. Another method, which is useful for insrtument you use intensively in all your projects, is to add them to the Library menu (option Customize...): this will make your libraries and FPs available for every project you are working on without need to explicitly add the instruments to the Instrument menu.
    If you are using an instrument and you don't see it in the project it must be loaded in one of the ways I described before: you can check in the original system which method was used.
    Proud to use LW/CVI from 3.1 on.
    My contributions to the Developer Zone Community
    If I have helped you, why not giving me a kudos?

  • Keithley 2701 and _KE2700_in​itwithopti​ons LINK error

    Hi
    My labwindows compiler does not like to compile my programme which used the KE2700_Init or INit with options
    it comes up with Project Link Error for the fuction?
    any ideas?
    Thanks

    I think I had the package
    looking at the two CWS files I noticed the addresses were different, the address to the DLL missing.
    I had to add the .fp fpr Keithley to the CVI. I thought the thing adds itself when it comes up.
    I had the same problem with INI routines and I had to add those too.
    thanks

  • Linker Error during compiling ODBC WinCE C++_Sample Project

    I am devloping a ODBC application for PocketPC2003 using OLite 10g Release 10.3.0.2. before that i am understanding the sample application provided with Olite.
    I followed all the instructions provided in ReadMe.txt file available before using VC++ sample. After making all the settings and compiling i am getting following linker errors as mentioned below.
    Any solution for this problem at the earliest will be appreciated, i have tried link all the libraries provided with WinCE armv4.
    Linker Error Messages:
    Error     1     error LNK2019: unresolved external symbol SQLExecDirect referenced in function "public: virtual __cdecl CSQLResult::~CSQLResult(void)" (??1CSQLResult@@UAA@XZ)     dbaccess.obj     
    Error     2     error LNK2019: unresolved external symbol SQLFreeStmt referenced in function "public: virtual __cdecl CSQLResult::~CSQLResult(void)" (??1CSQLResult@@UAA@XZ)     dbaccess.obj     
    Error     3     error LNK2019: unresolved external symbol SQLGetData referenced in function "public: class CRowObj const * __cdecl CSQLResult::Fetch(int)" (?Fetch@CSQLResult@@QAAPBVCRowObj@@H@Z)     dbaccess.obj     
    Error     4     error LNK2019: unresolved external symbol SQLFetch referenced in function "public: class CRowObj const * __cdecl CSQLResult::Fetch(int)" (?Fetch@CSQLResult@@QAAPBVCRowObj@@H@Z)     dbaccess.obj     
    Error     5     error LNK2019: unresolved external symbol SQLFreeEnv referenced in function "public: void __cdecl COLiteDB::Disconnect(void)" (?Disconnect@COLiteDB@@QAAXXZ)     dbaccess.obj     
    Error     6     error LNK2019: unresolved external symbol SQLFreeConnect referenced in function "public: void __cdecl COLiteDB::Disconnect(void)" (?Disconnect@COLiteDB@@QAAXXZ)     dbaccess.obj     
    Error     7     error LNK2019: unresolved external symbol SQLDisconnect referenced in function "public: void __cdecl COLiteDB::Disconnect(void)" (?Disconnect@COLiteDB@@QAAXXZ)     dbaccess.obj     
    Error     8     error LNK2019: unresolved external symbol SQLConnect referenced in function "public: int __cdecl COLiteDB::Connect(void)" (?Connect@COLiteDB@@QAAHXZ)     dbaccess.obj     
    Error     9     error LNK2019: unresolved external symbol SQLAllocConnect referenced in function "public: int __cdecl COLiteDB::Connect(void)" (?Connect@COLiteDB@@QAAHXZ)     dbaccess.obj     
    Error     10     error LNK2019: unresolved external symbol SQLAllocEnv referenced in function "public: int __cdecl COLiteDB::Connect(void)" (?Connect@COLiteDB@@QAAHXZ)     dbaccess.obj     
    Error     11     error LNK2019: unresolved external symbol SQLError referenced in function "public: class CSQLResult * __cdecl COLiteDB::Execute(wchar_t const *)" (?Execute@COLiteDB@@QAAPAVCSQLResult@@PB_W@Z)     dbaccess.obj     
    Error     12     error LNK2019: unresolved external symbol SQLDescribeCol referenced in function "public: class CSQLResult * __cdecl COLiteDB::Execute(wchar_t const *)" (?Execute@COLiteDB@@QAAPAVCSQLResult@@PB_W@Z)     dbaccess.obj     
    Error     13     error LNK2019: unresolved external symbol SQLNumResultCols referenced in function "public: class CSQLResult * __cdecl COLiteDB::Execute(wchar_t const *)" (?Execute@COLiteDB@@QAAPAVCSQLResult@@PB_W@Z)     dbaccess.obj     
    Error     14     error LNK2019: unresolved external symbol SQLAllocStmt referenced in function "public: class CSQLResult * __cdecl COLiteDB::Execute(wchar_t const *)" (?Execute@COLiteDB@@QAAPAVCSQLResult@@PB_W@Z)     dbaccess.obj

    Hi,
    The OLITE forum (Database Mobile Server (inc. legacy Database Lite) would be a better place to post your issue. This forum deals with the ODBC driver that connects to a "normal" Oracle database.
    Hope it helps,
    Greg
    Edited by: gdarling on Nov 12, 2008 8:31 AM

Maybe you are looking for