LabWindows CVI and debugging dll MSVC ++

We use a written LabWindows/CVI DLLS in the code for Teststand module. This DLL calls a DLL written in MSVC ++.  Is it possible to use the debugger of Labwindows/CVI debug this DLL MSVC ++ (if this DLL MSVC ++ is built with 'good' options)?  Or is possible only using the environment of development MSVC ++?

Hello mkossmann,

The CVI compiler generates different types of than MSVC debugging information.

The debugger CVI doen't understand the debugging information generated by MSVC, so you cannot debug the dll compiled in MSVC.

Constantin

Tags: NI Software

Similar Questions

  • Why can I not use my labview controls created dll in labwindow CVI?

    I created a DLL in LabVIEW for run of LabWindows/CVI.  The DLL is started very well but I have no control on the GUI.  Why and how can I use this GUI controls?

    I found the solution on the following thread.

    http://forums.NI.com/NI/board/message?board.ID=180&message.ID=36951&query.ID=314335#M36951

  • The interface of the AVI with the PC using LabWindows/CVI

    Hi friends,

    I have a vector Network Analyzer Keysight Technologies / Agilent Technologies N5230A. I want to run with the LabWindows/CVI to measure channel 40 GHz. I want to interface the AVI with the PC using LabWindows/CVI. It is really essential for the measures, and I have no experience in doing these things. Would you please direct me to the best, easy as possible of this work? I'm really conscious of the fact that and thank you for your time and concern.

    Mohamed

    I have a vector Network Analyzer Keysight Technologies / Agilent Technologies N5230A. I want to run it with the LabWindows/CVI and measure channel 40 GHz. I want to interface the AVI with the PC using LabWindows/CVI. It is really essential to me, and I have no experience in doing these things. Would you please direct me to the track better, easy and correct these work? I'm really conscious of the fact that and thank you for your time and concern.

    Mohamed

  • LabWindows CVI RS-232 is not fast enough

    Hello

    Is it possible to write a C program which takes RS-232 data buffers and prints it on the screen?

    I ask this question because I write a program in LabWindows CVI and the data is not correct. I used SimpleTerm Gold to see what data are supposed to look like, but CVI misses some. I believe it is not fast enough and therefore lack of data.

    A C program (do not use the functions or reminders CVI) would be possible and better?

    Is it possible to make the CVI to work faster? I changed the environmental policy of the previous "do not sleep". There are two ComRdTerm because we're not getting all the other packages.

    Rate 115200 baud, no parity, 8 data bits and 1 stop bit. Most of the data I receive are 313 bytes and the smallest is 17.

    Any help would be MUCH appreciated as I am completely puzzled.
    Thank you

    Code is below.

    OpenComConfig (com, "COM9", 115 200 Baud, 8, 1, 0, 1024, 1024); / /< opens="" serial="" ports="">
    SetComTime (com, 0); / /< sets="" serial="" port="" to="" never="" time="" out="">
    T0 = clock(); / /< calculate="" how="" fast="" comrdterm="" is="">
    bytes_read0 = ComRdTerm (com, & buffer0 [0], 314, 10); / / read com and store it in the buffer
    sprintf (p_check0,"%.4s" & buffer0 [0]);
    T0 = clock() - t0;
    Double time_taken0 = ((double) t0) / CLOCKS_PER_SEC; / / in seconds
    printf("%d\t%f\t%s\n",bytes_read0,time_taken0,&buffer0[0]);
    Memset (buffer0, 0, strlen (buffer0)); / / Clears the buffer

    T1 = clock();
    bytes_read1 = ComRdTerm (com, & buf1 [0], 314, 10);
    sprintf (p_check1,"%.4s" & buffer1 [0]);
    T1 = clock() - t1;
    Double time_taken1 = ((double) t1) / CLOCKS_PER_SEC;
    printf("%d\t%f\t%s\n",bytes_read1,time_taken1,&Buffer1[0]);
    Memset (buf1, 0, strlen (buffer1));

    Thanks for all the help guys. I finally found the solution. The program was running too slow because I kept opening and configure ports (not shown in the code) I simply kept open ports and it works fine.

    I appreciate all the comments and insight. Each of them will definitely help me still to develop with CVI.

    Kind regards
    Keegan.R

  • Windows 7 Starter Edition and LabWindows/CVI

    Hello

    I have two questions/problems with an application written with CVI 9.0.1 and CVI 2009 respectively Windows Vista professional.

    First if I have a distribution of my software package (or a version of a sample distribution package) and you want to install it on a netbook with Windows 7 Starter Edition Setup displays the following error message:

    "This product does not support Windows Starter Edition."

    Is this just a restriction of the installation program, or CVI will never support the Starter Edition?

    We often sell these netbooks as well as our units of measurement as an input/output device. But I think that in a future close all netbooks will use Windows 7 instead of XP and above all the Starter Edition.

    So if it is not taken in charge this will help upgrade netbooks to Windows 7 Home Premium? I have already tested Windows 7 Professional and it works, but I do not want to install Professional on a netbook...

    My second question also the Starter Edition.

    I'm building a kit of distribution of working space example "interp.cws" (curve fit and Interpolation) with the runtime engine installed in the application directory. If I run the .msi instead of the setup.exe package then the software has been installed on the system.

    So I can run the software, and it seems to work. But if the software calls a function in the library of analysis advanced (for example, the Spline Interpolation) it does not work. With remote debugging I discovered that there was a nonlethal runtime error "the analysis DLL library is not found or could not be loaded" during the spline function calls.

    The same sample works fine with Windows 7 Professional.

    Is this also a restriction of the CVI, and will be the reason (or one of the reasons) did not support the Starter Edition?

    Or is there a workaround for these errors?

    Best regards

    M.S.

    National Instruments supports Windows 7 Starter; However, just as now, our facilities are defined to stop any Windows Starter Edition is detected.  This is because XP and Vista Starter Editions were marketed to emerging markets and had severe limitations of performance.

    You should make sure that your specific product supports Windows 7.  If this is the case you can follow the instructions in the knowledge base

  • difference of initial value of string between the steps in the process and an external instance of LabWindows/CVI

    Hello

    I'm curious to know what I see using TestStand, LabWindows/2013 2013 with regard to initial in TestStand string values when you perform the steps in the process or an external instance of LabWindows/CVI.

    I have a step (CVI) string value that is used to check an array of characters stored in an EEPROM to test.  I pass on the Step.Result.String in the CVI by reference.  I then read the table charater of the EEPROM in the chain (Step.Result.String).  The string is then compared against the limit as specified in the test step breast.

    When I run this test step to perform the steps in the process selected in the popup Configuration of the adapter of LabWindows/CVI, it seems that the memory allocated for the string is filled with null characters.  Which is what I expected.

    When I run this test step to execute the steps in an external instance of LabWindows/CVI iselected of the Configuration of the adapter of LabWindows/CVI popup, it seems that the memory allocated for the string is filled with something else.  That is not what I expected.  For example what I see in the memory, it's the first characher is one byte NULL but the remaining bytes are some other values, as shown below:

    F0 00 AD BA 0D F0 AD BA 0D F0 AD BA 0D AD BA 0D AD BA 0D BA 0D AD F0 F0 F0
    F0 AD BA 0D F0 AD BA 0D F0 AD BA 0D F0 AD 0D AD BA 0D AD BA 0D F0 F0 F0 BA...

    In my code I make sure to write a null character in the following location table charater I just write in the chain so I have no problem with the test is working properly.  I have remove the writing from my code null character and was able to verity that the test passes when executing the steps in the process and fails during execution of the steps in an external instance of LabWindows/CVI.

    The returned string contains what I wrote for her, and then the rest of the string is filled with the values that are in the memory allocated for the string.

    Here's my Question: is this the expected behavior for the original string values in TestStand between both types of stage performances?

    Thank you

    Chris Young

    In general teststand not Initializes the unused portion of the string buffer, so it is expected that the values of the memory after character no endpoint will be different, or even to each call. If you happen to be get zeros after the null terminator which was probably due to random character (i.e. the memory allocated just arrived already having zeros in there) or perhaps a debug setting you use perhaps in the Visual C runtime (if you are debugging the process in visual studio or modify visual C runtime heap parameter). TestStand is not initializaing memory after the null terminator character in both cases (I checked the code).

    -Doug

  • DLL for LabWindows/CVI 8.0 with the bool data type

    Hello

    I want to use a new SWIR camera in LabWindows/CVI 8.0 (Windows XP 32bits).

    The company delivered with the camera produced a 32-bit dll by using Microsoft Visual C++ 2010. The .dll and .lib and .h files include a working SDK/API (some functions with the bool data type)

    Compilation-online syntax error, variable Boolean is not a data type in LabWindows/CVI 8.0

    Generate the import of DLL-online syntax error library

    I tried to convert bool char (typedef unsigned char bool => no more syntax error but the functions does not work.)

    What can I do?

    Martin

    Hello again, Naumann!

    Microsoft Visual C++ 2010 represents Boolean using 1 byte, as stated by MSDN: https://msdn.microsoft.com/en-us/library/tf4dy80a(v=vs.100).aspx

    I guess that you import C++ functions using the syntax for extern "C". Otherwise, because of the C++ name mangling wouldn't you able to bind C++ library against your code CVI.

    You can also specify how you import C++ functions?

    In addition, because you have not described the problem as a corruption of heads or runtime error, I guess the C++ library function is called correctly the CVI. That said, I tend to believe that the problem is not really in the mechanism of interaction of C/C++, but in the C++ library. If you would start calling a dummy C++ function returning an integer from a simple CVI application that should work, because redefine bool in CVI 1 byte must ensure that settings are correctly transferred onto the stack.

    If you need to create a wrapper function of C++ that is not using bool and calls the C++ function, I expect to return the same result.

    Maybe you are missing a few prior initialization steps required? The provider of the camera also comes all example code?

    Best regards!

    -Johannes

  • Opal kelly builders and LabWindows/CVI

    Hello, all.

    I try to get a Council Opal Kelly XEM3005 running with LabWindows/CVI 8.5.

    I have been in touch with Tech Suppt of OK and overthrew the original questions of type 'bool '.  After (at the recommendation of OK) with "char" types, I can now include the headers without errors.

    There are, however, a new problem:

    When I call the constructor function, which should return a pointer to a type of "okFrontPanel_HANDLE", I get an error for a prototype missing for initialization.

    Dredged in the .c (pp) file I found the following:

    //----------------------------

    Hi tomii,.

    Looks like you posted another very similar thread on the compilation of mistakes with the DLL of your Opal Kelly here. I follow upward in this thread to help get traction with those questions.

  • Using a DLL built with LabWindows/CVI

    Hello world

    I'm pretty new in the environment, LabWindows/CVI, until present excuses for any silly question. I have a real-time application running in a PXI, but I want to "complete" by adding new features, I have in the C Code generated from Dymola. I thought about creating a DLL of this code (using LabWindows) and then insert it in the .vi (the one I have running in the PXI) using the library function call so that I could have the new .vi running in PXI.

    Will it work?

    Thank you

    Hi all

    I S is true, you can find this knowledge base and really useful related links. This tutorial looks also interesting. However, take into account that the code runs on a real-time platform (such as the functions will work with the same priority as the appellant threadand, many other issues). Remember to FTP the file *.dll for PXI.

    Hope this helps,

  • JNI and Labwindows/CVI linking problem

    I am trying to connect to the server in Java through LAbwindows CVI DataSocket.

    I am able to create a dll. Everything works fine with no error in compilation or execution, but when I run the DS_OpenEx cannot return a native class.

    If anyone can help me with the problem.

    Thank you

    Hello

    Could you better clarify the implementation that works properly and implementation that does not work properly?

    1 are you connected to the DataSocket with Java source code and you are trying to communicate through this source of Java through LabWindows/CVI?

    2 are. what environment you able to successfully create a DLL?

    3. can indicate you what environment survey code error and what this code?

    ADri - K

  • LabWindows CVI 2010 and GetProcessAddress()

    I use v10.0.1 Labwindows CVI 2010 after the upgrade to version 2010 CVI v10.0.0. After the upgrade, I have a compilation error of a statement that compiles fine in the previous version. The error is:

    «= Operands are types illegal "pointer to __stdcall int function (int, pointer to char, char pointer, pointer to char, int, pointer to char, pointer to char)' and"FARPROC".»

    What causes this error is the following statement in the code:

    my_FP = GetProcAddress (dll_handle, "DLL_FUNCT");

    and the definition of my_FP is:

    int __stdcall (* my_FP) (int x, y of char [], char [z], char * m, int g, char A [], char [] B);

    (the parameters and the function names have been changed for simplicity)

    As I said, this line compiles fine in the 10.0.0, version but not in 10.0.1. Y at - it a specific update to the compiler that will cause this error? What can be done to fix this?

    I thank very you much for your time and your help.

    You are right. This was caused by a change in the SDK Windows CVI headers that took place in the 2010 SP1 version. The change has been associated with bug fix #275934. Unfortunately, this bug fix introduced this unwanted side effect to require a cast for any function that returns a function (such as GetProcAddress) FARPROC poinrter. On reflection, this side effect is unacceptable and needs to be fixed in the next version. This is followed internally with bug ID #336341.

    I'm really sorry for this inconvenience. Until the problem is solved using the typedef & cast you have already implemented is a valid alternative.

    Another solution, if you're worried about other projects or other functions, where this error can also appear, is to edit CVI2010\sdk\include\windef.h and replace the following definitions of FARPROC (line 226 and 230, respectively):

    typedef INT_PTR (away from WINAPI * FARPROC) (void);

    typedef int (away from WINAPI * FARPROC) (void);

    with:

    typedef INT_PTR (away from WINAPI * FARPROC) ();

    typedef int (away from WINAPI * FARPROC) ();

    This will avoid the problem throughout a facility given to the CVI.

    Luis

    NEITHER

  • problem with LabWindows CVI

    Hello I m trying to create a Setup program for an application created in a previous version of Labwindows CVI which one don't know locks I get just the file sources, I m working with the 2010 version, the problem is that the application is running in debug mode but when I run in release mode the application does not work only the icon in the taskbar is indicated but the GUI never appears, someone can help me with this

    Thanks for your help, the problem was not with the code and was not with the RT engine version, was a misconfiguration in the compilation release configuration, I myself do not add external sources dll´s and lib´s in the plug-ins option in the settings of the target

  • Real-time execution trace toolkit to optimize the Labwindows/CVI code

    Hello

    I am trying to optimize a code in real-time in LabWindows/CVI by minimizing the time of each section of the code is taking and find bottlenecks in the code. I check this time using the real-time execution trace toolkit.

    However, I just found it seems to be a constant error when you use the tool of real-time execution trace.

    When I put the traceviewer 'start' and 'stop' right after the other, I get around shift schedule 9us. It seems that the CPU will in some "idle" after the start of the trace mode, or maybe it's the time of communication or something.

    I'd appreciate it if someone could give me an idea of why this is happening. The time of real-time application window is very limited and I'm trying to minimize the time as much as possible. Even the United States 9 error is difficult to resell.

    I used the following code:

    TraceConfigure (1, 1, 0, 25000, NULL);
    TraceStart ();
    TraceStopAndSend (HOST_ADDRESS);

    and there is a photo in the toolkit of real-time execution trace.

    Thank you.

    Generally, you might be better off picking off the clock at the beginning and end of what you want to track. RTETT my introduce overhead that becomes difficult to quantify... Which is what you probably already see. The debug mode will also implement a ton of overhead. Then... Destemming of the clock in release mode will probably give you you the best estimate.

  • Passing a struct LabWindows/CVI TestStand

    I'm passing a struct in a dll written in CVI.

    Here's the problem: the code is written in CVI (c code) if I use "struct MyStruct * MyData" as the definition of parameter in the TestStand dll works fine. But if I set my struct using a typedef (i.e. typdef struct MyStruct) then use MyStruct * MyData as TestStand parameter generates a warning.

    I have a way to the adapter C\C ++.

    It's too late in the programming in order to go back and remove the typedef.

    So, how do TestStand accept the typedef?

    Thank you

    Carmine

    In ANSI C, struct names and type names belong to separate namespaces. You can declare the structs several different ways:

    (1) struct structName {int x ;};

    (2) typedef struct {int x ;} typedefName;}

    (3) typedef struct structName {int x ;} typedefName;} Note: structName may be identical to typedefName.

    I assume you are using the 2nd example above in which case LabWindows/CVI automatically generates a struct name (something like __unknown_1) which uses Testand.

    Even if you said it's too late to remove the typedef, you can add a struct name as in example 3 above? You can use the same name as the typedefName and TestStand will recognize.

  • Question of curiosity: several versions of LabWindows CVI can be installed on the same PC?

    I'm curious.  Several versions of LabWindows CVI can be installed on the same PC?

    I'm used to LabVIEW, where Yes, it is possible.  However, with CVI, other than the additional support with newer versions, there may not be a problem to return to an earlier version.  I still wonder.  Several versions can coexist in the same PC?  Or they affect each other?

    Curious...

    R

    You can, BUT only one (the last) version of the CVI runtime will be installed - this behavior began with CVI 6 or more.  Before that date, you have completely installed parallel to several versions of the CVI.

    This can be a problem if you ever find that you have applications depend on a particular version of the RTE.  Theory of NI is that this editor is always backward compatible.

    And you might ask what is simply the RTE - the answer is that it is a set of DLLS and stuff that NEITHER really cares to list for you.

    Menchar

Maybe you are looking for