Issue in using DLLs from a VC++ 6.0 MFC application

Hi,
I am using Labview 7.1 for creating VIs.I have created DLLs for accessing
these
VIs from a VC++ application. The VC++ 6.0 project is created using MFC app
wizard. When I try to execute the VC++ project in Debug configuration it
works
fine. When I try to execute the same in release configuration I get an
error as
shown in the attachment.
Attachments:
labviewWError.jpg ‏132 KB

Hi Mukund!
I found this response on another forum thread that looked like it could help you out:
==============================================================
MSVC++ error (system error 998)
This is actually a Microsoft issue. It has something to do with static and
dynamic linking of the MFC DLL. Our R&D engineers have verified this with projects created with no LabVIEW code at all (that is why we believe it to be solely a Microsoft issue). There are three options at this time:
1. Link with the DLL form of MFC.
2. Do not link with the .lib from the LV DLL, instead use LoadLibrary and GetProcAddress to dynamically load the DLL and call the function.
3. Use the VC delayload feature to make the LV DLL not get loaded until the first call is made into it. See VC help on "delayload" for information on setting this up.
Randy Hoskin
Applications Engineer
National Instruments
http://www.ni.com/ask
==============================================================
Hope this helps!
Travis H.
National Instruments
Travis H.
LabVIEW R&D
National Instruments

Similar Messages

  • How use DLL from PL/SQL

    Dear Mr/Mrs,
    My system is
    1.Oracle Database 10g express edition(with apex 3.2)
    2.Windows 2003 server
    3.GSM Modem(usb cable + Vendor Provided dll for developer)
    4.Mobile SIM card
    Now ,i want to send SMS from Database.
    N.B: email to sms is not my intention
    Thanks
    Engr.M.K Chowdhury

    Hi,
    What's wrong with the last answer Re: Using DLL from apex ?
    Regards
    Peter

  • Issue with using year-from-dateTime function

    Hi
    I am novice on XML and related technologies and as luch would have it I need to get a value in YYYY-MM-DD irrespective of input format.
    I am using the Xpath functions year-from-dateTime,month-from-dateTime etc to split up the input value and put the net in the required format.
    When I am trying to use fn:year-from-dateTime to get year from a variable that consists of "29/07/09" as below
    {color:#0000ff}*<xsl:value-of select="fn:year-from-dateTime(xs:date('29/07/09'))">*{color}
    where 'fn' prefix refers to http://www.w3.org/2005/02/xpath-functions
    and 'xs' prefix refers to http://www.w3.org/2001/XMLSchema
    and I am getting below error while running transformation from java...
    {color:#ff0000}*'The first argument to the non-static Java function 'date' is not a valid object reference.'*
    FATAL ERROR: 'Could not compile stylesheet'{color}
    I dont know of any method "date" in java
    Can any body help me on this...I have been breaking my head on this since yesterday..

    "BJWILD" <[email protected]> wrote in
    message
    news:g7dqkq$bqn$[email protected]..
    > Im trying to create a functino that takes an array as a
    parameter and give
    > it a
    > default value of an empty array however im getting 1047:
    Parameter
    > initializer
    > is unknown with a number of ways I have tried.
    >
    > eg:
    >
    > public function foo( myArray:Array = [] ):void{
    > // do stuff with the array
    > }
    >
    > generated this error:
    > 1047: Parameter initializer unknown or is not a
    compile-time constant.
    >
    > using myArray:Array = new Array() gives the same
    error...
    >
    >
    > Anyone else come across this?
    try
    public function foo(myArray:Array=null):void{
    if (myArray==null){
    myArray=new Array();
    not sure why what you tried isn't working, but this is one
    way arround it...

  • Unicode String Issue while Using Results from Another Query

    Hi All,
    In a webi report i have 2 queries say Sales Out and Investment. I need to have only those chains which are in Investement in Sales Out.
    So in Sales Out query i am using the option Results from another Query. The Chain values are in Unicode format.
    Though in universe i have Set Parameter Unicode_String ='Yes', this does not get applied when using option Results from another Query.
    Is there any solution to resolve this problem.
    Thanks
    Madhura

    leonhardtk wrote:
    I need to take values from the column of one table that meets certain critera, and create inserts into another table that includes this data.
    For example...
    {code}
    select emp_last_name from emp where emp_first_name like 'B%';
    Duncan
    Fitzgerald
    Johnson
    Smith
    {code}
    I then want to insert these values into another table:
    {code}
    insert into My_table values (
    sequence.nextval,99,99,[last_name]);
    {code}
    In the example above, I need it to insert a new row into My_table for where the "last_name" is each of the names from the select statement above (Duncan, Fitzgerald,Johnson,Smith).
    Based on other similar forum questions it looks like I should be doing something like:
    {code}
    INSERT INTO MY_TABLE
    (SELECT sequence.nextval,
                    99,
                    99,
                   (select EMP_LAST_NAME
                    FROM EMP
                    WHERE EMP_FIRST_NAME LIKE 'B%')
    {code}
    But this (obviously) doesn't work!
    Appreciate any assistance on this!
    KSL.
    Hi,
    Created this test data
    create table plch_test (name varchar2(50));
    insert into plch_test values('AKSHAY');
    insert into plch_test values('RAHUL');
    insert into plch_test values('APARNA');
    output
    1    AKSHAY
    2    RAHUL
    3    APARNA
    created another destnation table(in your case "my table")
    create table plch_test_1 (id number,name varchar2(50));
    created another sequence to generate employee ids
    create sequence test_seq;
    Now populated the desination table
    insert into plch_test_1(select test_seq.nextval,name from plch_test);
    verify the destination table
    select * from plch_test_1
    1    AKSHAY
    2    RAHUL
    3    APARNA
    Hope this helps
    Regards,
    Achyut Kotekal

  • Issue using XSD from MDS

    Hi
    I am having issue when using XSD from MDS. ( AIA 11G)
    I have created MDS connection and tested it and it workds. Through SOA Browser -> Resource Pallet I am able to brouse XSD also. After selecting XSD when i import , I get below mentioned error
    Exception: oracle.mds.exception.MDSException: MDS-02501: cannot load the ORAMDS URL "oramds:/apps/AIAMetaData/AIAComponents/EnterpriseObjectLibrary/Industry/HealthSciences/EBO/SupplierParty/V1/SupplierPartyEBO.xsd" because MDS session could not be created or resolved
    MDS-01330: unable to load MDS configuration document
    MDS-01329: unable to load element "persistence-config"
    MDS-01370: MetadataStore configuration for metadata-store-usage "mstore-usage_2" is invalid.
    MDS-00918: Connection details for the MDS repository are incomplete. The values for "userName, password, jdbcURL" are invalid
    Is there something i am missing?
    Bikash

    i run into the same issue a lot and it seems that everytime i modify the composite or the bpel, somehow all the userid, password, and jdbc-url properties are removed from the adf-config file. i always have to restore to a previous version from history. i have no idea what causes jdeveloper to remove these tags and haven't yet found a remedy for this problem.

  • Issue while using SUBPARTITION clause in the MERGE statement in PLSQL Code

    Hello All,
    I am using the below code to update specific sub-partition data using oracle merge statements.
    I am getting the sub-partition name and passing this as a string to the sub-partition clause.
    The Merge statement is failing stating that the specified sub-partition does not exist. But the sub-partition do exists for the table.
    We are using Oracle 11gr2 database.
    Below is the code which I am using to populate the data.
    declare
    ln_min_batchkey PLS_INTEGER;
    ln_max_batchkey PLS_INTEGER;
    lv_partition_name VARCHAR2 (32767);
    lv_subpartition_name VARCHAR2 (32767);
    begin
    FOR m1 IN ( SELECT (year_val + 1) AS year_val, year_val AS orig_year_val
    FROM ( SELECT DISTINCT
    TO_CHAR (batch_create_dt, 'YYYY') year_val
    FROM stores_comm_mob_sub_temp
    ORDER BY 1)
    ORDER BY year_val)
    LOOP
    lv_partition_name :=
    scmsa_handset_mobility_data_build.fn_get_partition_name (
    p_table_name => 'STORES_COMM_MOB_SUB_INFO',
    p_search_string => m1.year_val);
    FOR m2
    IN (SELECT DISTINCT
    'M' || TO_CHAR (batch_create_dt, 'MM') AS month_val
    FROM stores_comm_mob_sub_temp
    WHERE TO_CHAR (batch_create_dt, 'YYYY') = m1.orig_year_val)
    LOOP
    lv_subpartition_name :=
    scmsa_handset_mobility_data_build.fn_get_subpartition_name (
    p_table_name => 'STORES_COMM_MOB_SUB_INFO',
    p_partition_name => lv_partition_name,
    p_search_string => m2.month_val);
                        DBMS_OUTPUT.PUT_LINE('The lv_subpartition_name => '||lv_subpartition_name||' and lv_partition_name=> '||lv_partition_name);
    IF lv_subpartition_name IS NULL
    THEN
                             DBMS_OUTPUT.PUT_LINE('INSIDE IF => '||m2.month_val);
    INSERT INTO STORES_COMM_MOB_SUB_INFO T1 (
    t1.ntlogin,
    t1.first_name,
    t1.last_name,
    t1.job_title,
    t1.store_id,
    t1.batch_create_dt)
    SELECT t2.ntlogin,
    t2.first_name,
    t2.last_name,
    t2.job_title,
    t2.store_id,
    t2.batch_create_dt
    FROM stores_comm_mob_sub_temp t2
    WHERE TO_CHAR (batch_create_dt, 'YYYY') = m1.orig_year_val
    AND 'M' || TO_CHAR (batch_create_dt, 'MM') =
    m2.month_val;
    ELSIF lv_subpartition_name IS NOT NULL
    THEN
                        DBMS_OUTPUT.PUT_LINE('INSIDE ELSIF => '||m2.month_val);
    MERGE INTO (SELECT *
    FROM stores_comm_mob_sub_info
    SUBPARTITION (lv_subpartition_name)) T1 --> Issue Here
    USING (SELECT *
    FROM stores_comm_mob_sub_temp
    WHERE TO_CHAR (batch_create_dt, 'YYYY') =
    m1.orig_year_val
    AND 'M' || TO_CHAR (batch_create_dt, 'MM') =
    m2.month_val) T2
    ON (T1.store_id = T2.store_id
    AND T1.ntlogin = T2.ntlogin)
    WHEN MATCHED
    THEN
    UPDATE SET
    t1.postpaid_totalqty =
    (NVL (t1.postpaid_totalqty, 0)
    + NVL (t2.postpaid_totalqty, 0)),
    t1.sales_transaction_dt =
    GREATEST (
    NVL (t1.sales_transaction_dt,
    t2.sales_transaction_dt),
    NVL (t2.sales_transaction_dt,
    t1.sales_transaction_dt)),
    t1.batch_create_dt =
    GREATEST (
    NVL (t1.batch_create_dt, t2.batch_create_dt),
    NVL (t2.batch_create_dt, t1.batch_create_dt))
    WHEN NOT MATCHED
    THEN
    INSERT (t1.ntlogin,
    t1.first_name,
    t1.last_name,
    t1.job_title,
    t1.store_id,
    t1.batch_create_dt)
    VALUES (t2.ntlogin,
    t2.first_name,
    t2.last_name,
    t2.job_title,
    t2.store_id,
    t2.batch_create_dt);
    END IF;
    END LOOP;
    END LOOP;
    COMMIT;
    end;
    Much appreciate your inputs here.
    Thanks,
    MK.
    (SORRY TO POST THE SAME QUESTION TWICE).
    Edited by: Maddy on May 23, 2013 10:20 PM

    Duplicate question

  • Issue using DLL / library function node

    Hi All
    I am using labview 8.2 / 8.0
    I am writing a wrapper DLL to convert compex data types of a DLL to simpler ones for labview intefacing.
    I have read the forums on all related items and could not find a solution.
    I have cut my code back to basics and I am still getting error 1097 with 8.2 and a crash with 8.0
    The error occurs as follows:
    1) Start labview, open the vi.
    2) Run vi - everything works (so far the wrapper DLL I am writing call just does a simple open handle and close handle on a driver dll).
    The handle is passed back to the vi, and everything is good.
    I can re-run the application numerous times and it always works
    3) IF I close the vi, but not labview and re-open I get the following:
    Labview 8.0 crashes on closing the vi
    Labview 8.2 does not crash, but I get error 1097 if I re-open and run the vi.
    So it seems like it's almost working but the issue comes on the release of the dll from one invocation of the vi to another.
    I don't know what the error is, but I've tried everything I can think of! Any suggestions would be appreciated!
    Note: I am not passing any arrays at the moment, but I am passing one unsigned 32 bit int pointer. I declare a constant for this in the call, so there is something for the pointer to use, and it seems to return the data ok.

    Hi Kaem,
    Thanks for your reply.
    I have written C++ standalone programs that link to the DLL and these work fine. I have even called my wrapper DLL from a C++ program and that too works fine (just to check if the wrapper would cause issues there). I have a hunch that it is actually the DLL that my wrapper is 'wrapping' that is causing the issue, but I guess I don't know for sure.
    The difference (IMHO) is that these C++ programs all run through once and then exit, so everything works fine. However if they load the DLL and unload it and try to load it again, maybe there would be an issue. I think labview is doing this.
    The reason I think labview does something funny with the DLL after you exit a VI (but not labview) is because labview crashes in 8.0 when the VI is closed (8.2 is ok, but the next DLL invocation fails when the VI is reopened), so something must be happening at this point - and I think it's an ungraceful unload of the DLL.
    Also, I've noticed that I cannot overwrite my wrapper DLL with a new version until I exit a VI - so labview is definitely doing something on VI close - it's releasing some lock on the DLL.
    I don't use any consts in my code  - sorry if I indicated that. What I have is a U32 constant in labview, and I connect that to the input of  the library function node, and pass it as a pointer. And the DLL writes into this then. Are you saying that a labview constant cannot be used as an input to a function and passed as a pointer ? What should I use instead, a control?
    Note: while writing - I just tried that - same error -  so I don't think this is it.
    I'm willing to take any and all suggestions!!
    Cheers
    John

  • Collecting data from hardware using dll

    Firstly I d like to say hello, im the very beginier to labview thus I appeal for some patience.
    There were many threads dealing with that issue, I tried to get information from each one of them.
    and I posted this mesaage in order to make sure if i `d got it well.
    Well I ve got hardware and want to gather data from it, (its not array but 3 (variables?)  and of course it has its own dll. 
    What am i supposed to do is?:
    1.write other dll (VS) and there is asynchronous callback to device to get its position just like in exec aplication.
    2. USe PostLVUserEvent() to make parameters familiar to labview (in dll)? 
    is that correct way of thinking ? 
    I dont have problems with using dll in labview, but I dont know  much about how  asyncrhnous callbacks works with dll
    I hope its all clear.
    I know the all answers are here but I d like to summarize it, especially that I could miss something.

    There is dll (api?) provided by drivers(generally speakin) with all functions needed and documentaion, and second dll written by me with imported this finctions , which actually isnt a wrapper, but only c dll.
    Code was rewritten and divided (compared to previous one)  to 3 functions in order to avoid loop... and there is no callback anymore ,  ......  but called from labview one by one these functions are running very slowly - otherwise  from the exec application that I made to test dll. I hope its understable enough .
     I think documentaion isnt necesary. 
    JakubFrr wrote:
    HDCallbackCode HDCALLBACK GetDeviceStateCallback(void *pUserData)    // - it was getting state before,now code`s changed beacuse of the while loop .. now it  does nothing and I ve just noticed that its not necesarry 
    return HD_CALLBACK_CONTINUE;
    void init()
    HHD hHD = hdInitDevice(HD_DEFAULT_DEVICE);
    gCallbackHandle = hdScheduleAsynchronous(
    GetDeviceStateCallback, position, HD_MAX_SCHEDULER_PRIORITY);
    hdEnable(HD_FORCE_OUTPUT);
    /* Start the haptic rendering loop */
    hdStartScheduler();
    void work(float *a,float *b,float *c){
    hdBeginFrame(hdGetCurrentDevice());
    hdGetDoublev(HD_CURRENT_POSITION,position);
    (*a)=position[0];
    (*b)=position[1];
    (*c)=position[2];
    _sleep(50);
    hdEndFrame(hdGetCurrentDevice());
    void disable()
    hdStopScheduler();
    hdUnschedule(gCallbackHandle);
    hdDisableDevice( hdInitDevice(HD_DEFAULT_DEVICE));
     I used pointers with simple functions dll like adding etc. before and it  worked fine. 
    I admit I dont exactly get  callbacks. Its seems I can manage without them now, but I`m aware that during more complicated 'operations' it would be much harder.  Now it works in labview but very slowly...
    nathand wrote:
     (makes the appropriate call to the original DLL, passing the address of the callback function). 
    Could you give tutorials/example/explanation? 
    With best ragards  

  • Error while using LabVIEW 8.2.1 Dll from Visual C++ 6.0

    I am getting an error while using a LabVIEW 8.2.1 dll from Visual C++ 6.0 application. This is what I am doing:
    1) Created a dll using LabVIEW 8.2.1 (I used a tutorial from NI knowledge base: "Creating DLLs from 6.0i". It is a temperature conversion VI; input DegreeF and get DegreeC out). Instead of LabVIEW 6.0i, I used 8.2.1. It created the dll Convert_Temp.dll successfully.
    2) Then I created a Visual C++ 6.0 application (used a tutorial from NI knowledge base: "Calling a DLL from Microsoft Visual C++ that was Generated by LabVIEW 6i). I could build the project and create an executable application F_To_C.exe.
    3) Then copied the LabVIEW dll Convert_Temp.dll into the folder where F_To_C.exe resides. Using windows explorer, went into that folder, and executed the application.  I got the following error:
    System Error 998 while loading the LabVIEW run-time engine (C:\Program Files\National Instruments\Shared\LabVIEW Run-Time\8.2\lvrt.dll).
    Convert_Temp requires a version 8.2.1 (or compatible) LabVIEW Run-Time Engine. Please contact the vendor of Convert_Temp to correct this problem.
    I checked the folder: C:\Program Files\National Instruments\Shared\LabVIEW Run-Time\8.2\. It has the file lvrt.dll.
    So why am I getting this error?
    GKB

    sounds like you need to install the LabVIEW 8.2.1 runtime. Not the 8.2 runtime engine.
    Paul <--Always Learning!!!
    sense and simplicity.
    Browse my sample VIs?

  • How to use a dll from webstart

    hi there, i have the following, for an app (it's going to run only on windows) i need some info from the registry and used some third party code for that, now, my question is, the dll file used has to be in the systemdirectory of the local machine. How could i achieve that when the program will be running from webstart ??
    1. By just copying the file into there...
    2. Or other, like rewriting the source code for the third party code
    thx

    @babybomb: Thanks a lot ! This hint really helps even after years !
    Here is my cookbook:
    How to enable Java WebStart applications ?
    ===================================
    ...including native libraries !
    1. Generate a Keystore
    Generate a keystore (*.keystore) file.
    Tool: keystore (JDK)
    Syntax:
    keytool -genkey -keystore mykeystore.keystore -alias myalias2. Pack native Libraries
    Pack native libraries (*.dll, ...) into Java libraries (*.jar).
    Tool: jar (JDK)
    Syntax:
    jar -cfv nativelib.dll.jar nativelib.dll3. Sign the Libraries
    Sign ALL your application�s libraries (*.jar) with your keystore by using the "jarsigner" tool.
    Tool: jarsigner (JDK)
    Syntax:
    jarsigner -keystore mykeystore.keystore myapp.jar myalias
    jarsigner -keystore mykeystore.keystore 3rdparty.jar myalias
    jarsigner -keystore mykeystore.keystore nativelib.dll.jar myalias4. Prepare JNLP File
    Prepare Java WebStart JNLP File.
    Syntax:
    <?xml version="1.0" encoding="utf-8"?>
    <!-- JNLP File for My Application -->
    <jnlp
    spec="1.5+"
    codebase="$$codebase">
    <information>
    <title>My Application</title>
    <vendor>My Company</vendor>
    <description>My Application</description>
    <description kind="short">MyApp</description>
    <offline-allowed/>
    </information>
    <security>
         <all-permissions/>
    </security>
    <resources>
    <j2se version="1.5+"/>
    <jar href="myapp.jar"/>
    <jar href="3rdparty.jar"/>
    </resources>
    <resources os="Windows">
    <nativelib href="nativelib.dll.jar"/>
    </resources>
    <application-desc main-class="my.app.MyApp">
         <argument>arg0</argument>
         <argument>arg1</argument>
    </application-desc>
    </jnlp>
    5. JnlpDownloadServlet
    Copy the "jnlp.sample.servlet.JnlpDownloadServlet" from Java JDK into your web applications� web library directory "WEB-INF/lib".
    6. Prepare Deployment Descriptor
    Prepare your web application�s deployment descriptor (web.xml) to enable "JnlpDownloadServlet".
    Syntax:
    <servlet>
    <servlet-name>JnlpDownloadServlet</servlet-name>
    <servlet-class>jnlp.sample.servlet.JnlpDownloadServlet</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>JnlpDownloadServlet</servlet-name>
    <url-pattern>*.jnlp</url-pattern>
    </servlet-mapping>
    7. Run the Application
    Yesssss !!!

  • Using LV DLL from C++

    Hello,
    I've read questions about calling LV DLL with front panel.
    It is recommended to change the configuration to reentrant and not to use UI model.
    I made this but my dll still does not display her front panel when called from my C++ application.
    It seems to run in background.
    Any help?

    To show the front panel of your DLL you will need to use VI properties>>Window Appearance>>Customize. Set the Front Panel when called option. This will open the front panel to your DLL when the DLL is called.
    If you call the DLL from a LabVIEW VI running in the user interface thread (a.k.a. execution system) you will get a deadlock if the VI called inside the DLL needs to do some work (such as showing its front panel).
    To work around the deadlock, you must make sure that the DLL is called from a thread other than the user interface thread. To do so, first configure the shared library node to be "Reentrant" rather than "Run in UI Thread". Then make sure that the VI is not running in the UI thread by looking in VI Properties>>Execution>>Preferred Execution S
    ystem
    I think the same would apply if called from a C++ application.

  • [Q] Using a VC++ DLL from LabWindows

    I need to create a DLL that uses shared memory. I can do
    this with Visual C++ but haven't succeeded doing it with
    LabWindows.
    So now I want my LabWindows executable to use the VC++ DLL.
    I'm having trouble because some identifiers are "redefined"
    (defined both in the needed VC++ include files as well as in
    CVI include files).
    Can someone tell me either how to create a DLL that uses
    shared memory in LabWindows (this is my preferred solution)
    or else how to use a VC++ DLL from LabWindows?
    My ultimate aim is to use the shared memory to share
    instrument session handles, since we need to be able to talk
    to the same instrument from more than one process. Has
    anyone already done this?
    TIA for any help ...
    B
    * S
    ent from RemarQ http://www.remarq.com The Internet's Discussion Network *
    The fastest and easiest way to search and participate in Usenet - Free!

    Hello andre,
    today I have read your message of the 20th Sept. 1999 in the NI-Newsgroup.
    And I am also trying to use SHARED MEMORY.
    But I have no experience with it. Could you help me?
    Do you have succeded ?
    With best regards,
    CHRISTIAN ZIPPER
    ande schrieb in im Newsbeitrag:
    [email protected]..
    > I need to create a DLL that uses shared memory. I can do
    > this with Visual C++ but haven't succeeded doing it with
    > LabWindows.
    >
    > So now I want my LabWindows executable to use the VC++ DLL.
    > I'm having trouble because some identifiers are "redefined"
    > (defined both in the needed VC++ include files as well as in
    > CVI include files).
    >
    > Can someone tell me either how to create a DLL
    that uses
    > shared memory in LabWindows (this is my preferred solution)
    > or else how to use a VC++ DLL from LabWindows?
    >
    > My ultimate aim is to use the shared memory to share
    > instrument session handles, since we need to be able to talk
    > to the same instrument from more than one process. Has
    > anyone already done this?
    >
    > TIA for any help ...
    >
    >
    > B
    >
    > * Sent from RemarQ http://www.remarq.com The Internet's Discussion Network
    > The fastest and easiest way to search and participate in Usenet - Free!
    >

  • I am using a DLL from VC++ labview6.1 crash upon loading the DLL

    Labview crashes when I load my DLL from VC++ that calls device net software. It is only _stdcall function. Sometime my whole PC crash upon loading it. I Appreciate any help from anyone......

    Your problem is most likely caused by a memory error. Insure that you are passing the correct data types (especially pointers) into the Call Library Function and make sure that if the DLL is expecting any memory to be allocated that the proper data has been created in LabVIEW (for instance, if the DLL was expecting a string of a certain length, LabVIEW would need to create a string constant which was long enough to satisfy the DLL). Also insure that there are not any race conditions (conditions within LabVIEW in which the order of execution is not defined) which could cause your DLL to access memory which has not yet been allocated. You can generally fix race conditions by using sequence structures. Also, make sure that your DLL cleans up any memory that it all
    ocates.
    Hopefully that helps,
    Ryan
    NI Applications Engineer

  • Using cvirte.dll from teststand

    I am trying to use cvirte.dll from teststand to automatically print test result reports. I am starting with the example sequence PrintEntireReportWhenFinishedTesting.seq that I found on the NI website. I want to change the print font attribute. The dll doesn't include prototype information so I need information on the parameters for the SetPrintAttributeEx function. Specifically what number refers to the ATTR_PRINT_FONT_NAME attribute and what are acceptable values for the value of this parameter.
    Attachments:
    PrintEntireReportWhenFinishedTesting.seq ‏37 KB

    Wendell,
    I believe this question was also posted in the TestStand category. Since this is more of a TestStand question, it was seen and already answered. Please see Using cvirte.dll from teststand.
    Thanks!
    Shannon R
    Applications Engineer
    National Instruments

  • Trying to create DLL from VI to use in TestStand.

    I trying to create a DLL out of an existing VI file.  The VI has about 4 inputs and about 3 outputs.  If I go to Tools >> Build Application and select the Build Target as a "Shared Library (DLL)" i get a dll after the build; but when I try to call that DLL from teststand, it doesn't recognize any of the inputs or outputs.  How do I build a DLL so that teststand will reconize the inputs and outputs?
    Solved!
    Go to Solution.

    The controls and indicators are connected to the connectors.  Also, answering an earlier post, the prototype information for the inputs and outputs are not automatically displayed. I can manually define the prototypes, but then the question is how does each prototype link to its corresponding parameter (by name?). I've also tied creating just a simple VI that has just one string input and one string output.  I built the VI to a DLL and tried calling in TestStand and i get the same results.  I've inserted the resulting header file after that build.  Which, by the way, looks exactly like my other created DLL's header file.  The difference in bold(the name of the VI). Which makes me thik that my build DLL process might be off.
    #include "extcode.h"
    #pragma pack(push)
    #pragma pack(1)
    #ifdef __cplusplus
    extern "C" {
    #endif
    void __stdcall String_input_output(void);
    long __cdecl LVDLLStatus(char *errStr, int errStrLen, void *module);
    #ifdef __cplusplus
    } // extern "C"
    #endif
    #pragma pack(pop) 

Maybe you are looking for