Any way to use Delphi strings?

I know that LabView can, when calling external libraries, use Pascal string pointers. However, those are limited, is there a way to call an external library using a Delphi string?
FYI: a Pascal string uses one byte for it's length, a Delphi string uses 4 bytes. Since I'm using Delphi for implementing the DLL, using Delphi strings would be way more straightforward than using C strings.
Solved!
Go to Solution.

Kirillenseer wrote:
Thank you, I'll try to go with the handle method, pointer to a Delphi string reference. Still funny that LV string and Delphi string are the exact same beasts, yet can't interoperate seamlessly.
They are not the same! They look the same in terms of the actual byte layout in memory, but the memory management is entirely different. The LabVIEW String is a LabVIEW Handle, an internal memory object managed by the LabVIEW memory manager functions and using a pointer to a pointer to the actual information. Any modification to the string that requires to change its size MUST be performed by calling the according memory manager functions, or a crash is immediately evident.
The Pascal String is a memory area managed by the Delphi runtime library (and maybe, possibly, but likely not documented be implemented under Windows on top of the SysString datatype.) and repreents just a pointer to the data.
If you want to pass in a string to a DLL function that is passed in by reference (VAR keyword) you can get away with configuring it as a  LabVIEW String handle. But if the string is passed into the function by value (just the String itself) this won't work at all. And if the function is supposed to return information in the string you can't do it without either a wrapper or some pointer magic implemented in the diagram. This is because if you configure it as a LabVIEW Handle, LabVIEW expects it to be allocated by its memory manager functions, but Delphi will do it with its Delphi runtime functions and as soon as LabVIEW attempts to free that string, it will crash, since the memory loacation is not allocated from the heap managed by the LabVIEW memory manager.
Rolf Kalbermatter
CIT Engineering Netherlands
a division of Test & Measurement Solutions

Similar Messages

  • I'm using TestStand/Labview to do a string value test. Is there any way to use a variable in the edit string value test?? This forces you to hard code a string to test against.

    I'm using TestStand 2.0/Labview 6i to do a string value test. Is there any way to use a string variable in the edit string value test instead of an actual string?? This forces you to hard code a string to test against.

    Hi ART,
    You can also use the LimitLoader step to load your string into to step similar to the Numeric Step type.
    There should be an example of this in the Resource Library | TestStand
    Regards
    Ray Farmer
    Regards
    Ray Farmer

  • Any way to use cursor values inside other cursor by bulk collect?

    hi,
    Is there any way to use cursor get_tables value insdide loop get column if i am using bulk collect in both cursors?
    I tried a lot but i am nt able to do it.kindly help...
    create or replace procedure MULTIPLE_CURSORS_PROC is
    v_owner varchar2(40);
    v_table_name varchar2(40);
    v_column_name varchar2(100);
    cursor get_tables is
    select distinct tbl.owner, tbl.table_name
    from all_tables tbl
    where tbl.owner = 'SYSTEM';
    cursor get_columns is
    select distinct col.column_name
    from all_tab_columns col
    where col.owner = v_owner
    and col.table_name = v_table_name;
    begin
    open get_tables;
    loop
    fetch get_tables into v_owner, v_table_name;
    open get_columns;
    loop
    fetch get_columns into v_column_name;
    end loop;
    close get_columns;
    end loop;
    close get_tables;
    end ;

    hi there
    Refer this
    CREATE OR REPLACE PROCEDURE MULTIPLE_CURSORS_PROC
    IS
       TYPE scol IS VARRAY (10000) OF VARCHAR2 (32767);
       v_table_name    scol;
       v_column_name   scol;
       TYPE curtyp IS REF CURSOR;
       get_columns     curtyp;
       CURSOR get_tables
       IS
          SELECT   DISTINCT tbl.table_name
            FROM   all_tables tbl
           WHERE   tbl.owner = 'SYSTEM';
    BEGIN
       OPEN get_tables;
       LOOP
          FETCH get_tables BULK COLLECT INTO   v_table_name;
          FOR indx IN v_table_name.FIRST .. v_table_name.LAST
          LOOP
             SELECT   DISTINCT col.column_name
               BULK   COLLECT
               INTO   v_column_name
               FROM   all_tab_columns col
              WHERE   col.table_name = v_table_name (indx);
             FOR ind IN v_column_name.FIRST .. v_column_name.LAST
             LOOP
                DBMS_OUTPUT.put_line (v_column_name (ind));
             END LOOP;
          END LOOP;
          EXIT WHEN get_tables%NOTFOUND;
       END LOOP;
       CLOSE get_tables;
    END MULTIPLE_CURSORS_PROC;regards
    Hitesh

  • Any way to use filter to exclude tables in navagation pane?

    Is there any way to use filter to exclude a set of tables from the table list in the navagation pane? I have a number of tables (15+) starting with the same prefix eg. AB123 that I would like eliminate from the list. They sort right to the top and I always have to scroll down, and go through the show more dialog to see the entire list.
    I am sure I'm missing something, but not sure what. Help Center has nothing to offer.
    Thanks
    Glenn

    This has been mentioned on the forum before - basically the need for more elaborate ways to filter (multiple conditions as well as 'not like'). It is on our list for future consideration, meaning post-production.
    -- Sharon
    Message was edited by:
    sbkenned

  • Is there any way to use -useLegacyAOT option in FlashBuilder 4.6?

    I need to build my ipa with old version of Engine because i have some problems about loading images from outside. Since with Air 15 it is default engine, and i cannot quit Air 15 because of the iTunes specs. I cannot add -useLegacyAOT=yes to compiler options on Adobe Flash Builder 4.6 because it seems that it can be added at FB4.7.
    So is there any way to add this options when i am using FB4.6
    Thanks in advance.

    DeepakJ wrote:
    Hi,
    Is there any way to use a control break on Dept column in a SQL query to have a Output-2 instead of Output-1.
    Is there any way to modify the SQL query.
    SQL
    select dept, loc, count(*)
    from dept
    group by dept, locOutput-1
    Dept      Loc       Count(*)
    10         AA        1
    10         BB        2
    10         CC        2
    20         AA        2
    20         BB        2Output-2
    Dept      Loc       Count(*)
    10         AA        1
    BB        2
    CC        2
    20         AA        2
    BB        2
    Yes, using the <tt>lag</tt> analytic function and specified ordering of the data:
    select
        nullif(d.deptno, lag(d.deptno) over (order by d.deptno, d.loc, e.mgr nulls first)) deptno
      , nullif(d.loc, lag(d.loc) over (order by d.deptno, d.loc, e.mgr nulls first)) loc
      , e.mgr
      , count(*) n
    from
        dept d
          join emp e
            on d.deptno = e.deptno
    group by
        d.deptno
      , d.loc
      , e.mgr
    order by
        d.deptno
      , d.loc
      , e.mgr nulls first;
    DEPTNO  LOC       MGR   N
        10  NEW YORK         1
                      7782   1
                      7839   1
        20  DALLAS    7566   2
                      7788   1
                      7839   1
        30  CHICAGO   7698   4
                      7839   1
        40  BOSTON    7698   2
                      7902   1

  • Is there any way to use Control Break in a SQL Query

    Hi,
    Is there any way to use a control break on Dept column in a SQL query to have a Output-2 instead of Output-1.
    Is there any way to modify the SQL query.
    SQL
    select dept, loc, count(*)
      from dept
    group by dept, locOutput-1
      Dept      Loc       Count(*)
      10         AA        1
      10         BB        2
      10         CC        2
      20         AA        2
      20         BB        2Output-2
      Dept      Loc       Count(*)
      10         AA        1
                 BB        2
                 CC        2
      20         AA        2
                 BB        2Thanks,
    Deepak

    DeepakJ wrote:
    Hi,
    Is there any way to use a control break on Dept column in a SQL query to have a Output-2 instead of Output-1.
    Is there any way to modify the SQL query.
    SQL
    select dept, loc, count(*)
    from dept
    group by dept, locOutput-1
    Dept      Loc       Count(*)
    10         AA        1
    10         BB        2
    10         CC        2
    20         AA        2
    20         BB        2Output-2
    Dept      Loc       Count(*)
    10         AA        1
    BB        2
    CC        2
    20         AA        2
    BB        2
    Yes, using the <tt>lag</tt> analytic function and specified ordering of the data:
    select
        nullif(d.deptno, lag(d.deptno) over (order by d.deptno, d.loc, e.mgr nulls first)) deptno
      , nullif(d.loc, lag(d.loc) over (order by d.deptno, d.loc, e.mgr nulls first)) loc
      , e.mgr
      , count(*) n
    from
        dept d
          join emp e
            on d.deptno = e.deptno
    group by
        d.deptno
      , d.loc
      , e.mgr
    order by
        d.deptno
      , d.loc
      , e.mgr nulls first;
    DEPTNO  LOC       MGR   N
        10  NEW YORK         1
                      7782   1
                      7839   1
        20  DALLAS    7566   2
                      7788   1
                      7839   1
        30  CHICAGO   7698   4
                      7839   1
        40  BOSTON    7698   2
                      7902   1

  • Time Machine Beautiful Background - any way to use it apart from TM

    The picture of moving universe as the background of TM processes is beautiful. Is there any way to use it apart from TM (screen saver, desktop image) ?

    Not easily. It's not a single display. The "moving parts" are separate.
    The basic background is at:
    /System/Library/PrivateFrameworks/Backup.framework/Versions/A/Resources/vortex.p ng
    You could select and right-click it, and select it as your desktop picture, but it won't move.
    Or display it with Preview, save it as a jpg, import it into iPhoto, make an album containing it, then select the album as your screen saver.

  • Any way to use a quick and dirty icon like cLabel in the quick tools toolbar?

    I am a javascript cut-and-paster with ability to cobble things together.
    In previous versions of Acrobat, I had tools that were added to the toolbar using the technique shown in this script:
    app.addToolButton({cName: "MyFlattenButton",
       cLabel: "Flatten",
       cEnable: "event.rc = (app.doc != null);",
       cExec: "flattenPages();"
    That would create a toolbar button with the "icon" that read "Flatten" which is all that I needed.  I could click on it and it would flatten all pages in the document.
    I used this to create several different tools, all with different names and cLabels.
    This script still works in Acrobat XI (it adds the tool to the add-on tools list, and then I can add it from there to the quick tools toolbar).  The cLabel names show up in the add-on tools list, but not in the quick tools toolbar.  In the toolbar they all use the same generic icon (but they all work correctly).
    From reading in this forum I see that there is a way to create a custom icon but it does not look easy.  Is there any simple way to just have text appear as the icon as I used to do for earlier versions of Acrobat?
    Thanks.

    One further question...
    I found a code snippet somewhere online that attempted to deal with this issue.  That led me to this (failed) solution:
    this.importIcon("myIconFlat", "/D/J/CAD Standards/Stamps/Acrobat tools/flatten.jpg", 0);
    var flatIcon = util.iconStreamFromIcon(this.getIcon("myIconFlat"));
    app.addToolButton({cName: "MyFlattenButton",
       cLabel: "Flatten",
       oIcon: flatIcon,
       cEnable: "event.rc = (app.doc != null);",
       cExec: "flattenPages();"
    The problem there is that importIcon is not allowed from a folder-level javascript, apparently.  Would there be any way to use the importIcon part of this from the console and then cut and paste some output into the rest of the script?  Just looking for a way to get the icon into my script.

  • Is there any way to use a file transfer protocol to upload files to icloud?

    Is there any way to use a file transfer protocol to upload files to icloud?

    Unfortunately, no.
    You will need a 3rd party web host to upload your websites to. Depending on the version of iWeb you are using you have a couple of publishing options:
    iWeb ’09 (3.0.4) you can publish to an FTP Server or a local folder. ( With the built in FTP in iWeb you will end up with an address like “www.YourDomain.com/sitename/Home.html )
    iWeb ’08 you can publish your website to a local folder
    Basically all Web Hosting companies are iWeb-compatible.
    If you’re looking for a good hosting I would recommend IX Web Hosting I have been using them to host my own websites for several years now and that their customer support is awesome too.
    http://jeffnitschke.com/IXWebHosting.html
    http://jeffnitschke.com/wordpress/2012/06/how-do-i-move-my-mobileme-site-ix-web- hosting-blog/
    "I may receive some form of compensation from my recommendation or link."

  • Is there any way to use a MacBook Pro as a router to set up a wireless connection for XBOX live.

    Is there any way to use a MacBook Pro as a router to set up a wireless connection for XBOX live.

    Mac OS X 10.6 Help: Sharing your Internet connection

  • Is there any way to use a aunetreceive for a track within GarageBand?

    Is there any way to use a aunetreceive for a track within GarageBand?
    I have an application, Soundboard, which sends audio via the aunetsend plugin. I'd like to manage the output of this application within Garageband as a track. Is there any possible way to do this?
    Thanks

    Alas, no, not in VBA.
    Regards, Hans Vogelaar (http://www.eileenslounge.com)

  • Is there any way to use a For Each Loop for each property of an User Defined Type?

    Is there any way to use a For Each Loop for each property of an User Defined Type? That would be very handy!
    Jorge Barbi Martins ([email protected])

    Alas, no, not in VBA.
    Regards, Hans Vogelaar (http://www.eileenslounge.com)

  • Is there any way to use Internet Explorer on a Mac? I have one insurance company that I do business with that you must use internet explorer

    Is  there any way to use Internet Explorer on a Mac Book Pro? I have one company that I do business with that only uses Internet Explorer

    Internet Explorer is not available for Mac.
    But you can make Safari pretend to be Internet Explorer in some cases.
        Safari > Preference > Advanced
        Checkmark the box for "Show Develop menu in menu bar".
        "Develop" menu will appear in the Safari menu bar.
        Click Develop, move mouse down to "User Agent".
        Select Internet Explorer from popup on the rightside.
        After using Internet Explorer, revert back to Safari, doing the same routine.

  • Is there any way to use embedded commands in text to create pauses when using text to speech in iOS 5? You can do it in OS X by typing [[slnc 2000]] to get a two-second pause.

    Is there any way to use embedded commands in text to create pauses when using text to speech in iOS 5? You can do it in OS X by typing [[slnc 2000]] to get a two-second pause.

    Thanks for the reply Russ.
    Yes, I've considered adding titles and/or generators in the FCPX storyline, but this creates a need to render the entire timeline. As I'm juggling library locations and hard drive spaces I just didn't want to add a new render that will occupy a lot of space. It's also a bit of visual clultter for me, so my goal is to find the best workflow for adding this stuff on or after export.

  • Is there any way to use iTunes to sync a Zen NX

    As the subject says, is there any way to use iTunes to sync or transfer tracks to a Jukebox Zen NX?
    Thanks,
    Wint

    iTunes will only work with Apple players.

Maybe you are looking for

  • Can you have multiple iTunes accounts associated with one email address?

    My current iTunes account is associated with my company email address that I am attempting to change to my personal email address that I share with my husband.The problem is his iTunes account is also associated with this email address. Is there a wa

  • Download problem with Acrobat XI Pro for MAC

    I purchased Acrobat XI full for MAC download, but when I click download I keep getting plug-in failure. Using Safari, already tried downloading and installing the latest version of flash player and that did not help.

  • FormDataIntegrationService and ALC-DSC-003-000: com.adobe.idp.dsc.DSCInvocationException?

    Hi all! We have Adobe LC ES (version 8.2) over JBoss. We are trying to invoke the FormDataIntegrationService Service, which we see that is accessible on the server and operating (as we see in the management app and the WSDL is accessible). In the sam

  • Reg: result_cache in parallel -

    Hi Experts, I have few concern(s) regarding the Result Cache (introduced in 11gR2) and the /*+ RESULT_CACHE */ hint. Refering to - Doc 12.1 - Tuning the Result Cache Murali Vallath - Using Oracle Database 11g Release 2 Result Cache in an Oracle RAC E

  • EJB-Ref rewriting in IAS-Console

    Hi, I have an EJB A from wich i want to call another EJB B. So I put an EJB Reference in ejb.jar and orion.xml from EJB A. The EJB B I want to call is in another Application. So I want to set the jndi- location in the settings on the Application Serv