Calling a DLL with a & (ampersand) in the declaration

Hi,
I'm trying to call an external DLL and having issues calling an important function.  The 'FindDevices' call has the following declaration:
long FindDevices(long &DeviceCount);
I've never come across calling an external function with an ampersand (indicating that a reference, rather than a pointer, shall be passed) before.  Is this possible with LabView?
I've tried many permutations of the DLL configuration, but it usually crashes the entire development environment.  Here is a link to the DLL and *.h file if you'd like to give it a shot.  It's a 64-bit DLL, and I've been developing this on 64-bit Labview and Windows 7 x64.  It also requires the configuration file 'ZStepperSettings.xml' to be in the same directory as the DLL.
Thanks for your time.
Attachments:
ZStepper_SDK.h ‏6 KB

For scalars the C++ reference syntax should be equal to a standard C pointer. For other datatypes that is certainly not guaranteed. Since long is a scalar I would guess the problem to be elsewhere. Are you sure the calling convention is correct?
Also the effect that it only causes the 1097 error sometimes, as well as crashing only sometimes is not so strange. There is no supervisor that can 100% surely detect if there is some memory violation during a call to an external function. Eventhough the parameter configuration is wrong or the DLL does something bad, this doesn't always result in a behaviour that LabVIEW could detect or would always cause a crash. It depends on the actual memory layout of your process at the moment this function is called if the error will be causing one of these problems. But be assured that if there is an error in how the function is configured or a bug in the function about how it access the memory especially for writing operation, something bad is done to the memory that will sooner or later cause very serious problems to your application.
EDIT: It seems that while C++references for scalar types are usually implemented as pointers by the compiler, there is nothing in the C++ standard that mandates this nor defines in any way how they should be implemented. So basically C++ references are not a safe datatype to use if you want to allow a function to be callable by anything else than code compiled with the same C++ compiler. Basically anything C++ specific is not safe at all in that sense. And anything standard C conformant mostly only by convention and not by specific requirements set forth in the C standard.
Rolf Kalbermatter
CIT Engineering Netherlands
a division of Test & Measurement Solutions

Similar Messages

  • Calling a DLL(with vi.lib) from a lvclass within a Packed library

    Basically, I am having problem calling a DLL (which uses the vi.lib) from a packed library.
    The error code I got is error code 1003. “Error 1003 occurred at Call Library Function Node in XXXXX.lvlibp”, “Labview: The VI is not excutable. Most likely the VI is broken or one of its subVIs cannot be located. Select File>>Open to open the VI and then verify that you are able to run it.   Create Summary Log.vi”
    The VI that was mentioned above (Create Summary Log.vi) is one of the functions in the DLL that I am trying to call from the packed library. This VI modifies an Excel spreadsheet so it needs the vi.lib. In my DLL project, vi.lib is in my dependencies. When I compile my DLL, Labview will create four folders (NI_Excel, NI_HTML, NI_report, NI_Standard Report) at the build destination.  
    To problem happens when I run a Top level VI, which calls-> the lvlibp -> lvclass (within the packed library) -> DLL (uses the vi.lib Excel functions).
    This problem doesn’t happen when I am not running the packed library (Only with the lvclass). So I think the problem is that DLL can’t access or find the vi.lib when it’s being called by the packed library. It seems like the packed library changes the way the DLL access the vi.lib.
    Any suggestions?

    Hi,
    Thank you for your reply. Unfortunately, I think I might have provided wrong information. I thought the problem didn’t exist when I wasn’t running the packed library, but the truth is, the problem always exist regardless.
    I would get an “error 7” when I created a simple VI that would utilize “Call Library Function Node” to call the DLL.  
    Error 7 occurred at Get LV Class Default Value.vi
    Possible reason(s):
    LabVIEW:  File not found. The file might have been moved or deleted, or the file path might be incorrectly formatted for the operating system. For example, use \ as path separators on Windows, : on Mac OS X, and / on Linux. Verify that the path is correct using the command prompt or file explorer.
    =========================
    NI-488:  Nonexistent GPIB interface.
    Complete call chain:
         Get LV Class Default Value.vi
         NI_report.lvclass:New Report.vi
         Create Summary Log.vi
         Create Summary Log.vi.ProxyCaller
    LabVIEW attempted to load the class at this path:
    C:\XXX\XXX.dll\Excel\NI_Excel.lvclass
    So the problem is, I don’t know how to include the NI_Excel.lvclass in my DLL. I didn’t have this problem back in 8.2, as I would just include a VI (with the excel VIs in the block diagram) in the project when I build it. This doesn’t work anymore as I am using 2011. 

  • Call a dll with an activeX component gives error

    Hello all,
    My program consist of:
    - Main program
    - DLL's
    How it works:
    The main program is the interface for the user, this main program call's several dll's
    The problem:
    The main program runs withought problems, but when it call's a dll, which also call's an activeX component, I get an error.
    I then made a executable from the dll which then works ok, no problem.
    When I click the retry it runs ok, but when I call it again I get the message again.
    The message does allways accur, but still very often
    Conclusion:
    The error message only comes when I call it as a dll, when the dll is standalone executable no problems occur.
    Below you can see how I call the dll:
    Can someone please help me with this problem?
    greetz,
    Bart

    Hello Bas,
    I have included the vi which calls de dll(executedll.vi) en the dll in VI form(plugin.vi & plugin.lvproj).
    As you can see the dll calls the canconfigurator activex component.
    And closes the activex component when done.
    This plugin will be called several times in the test enviroment.
    gr,
    Message Edited by darkxceed on 02-12-2010 04:33 AM
    Message Edited by darkxceed on 02-12-2010 04:33 AM
    Attachments:
    ExecuteDLL.vi ‏12 KB
    plugin.lvproj ‏8 KB
    plugin.vi ‏31 KB

  • C++ Call to DLL made in LabVIEW Fails the second time it is called

    I have an application where a C++ executive calls a LabVIEW DLL (a LabVIEW application built into a DLL).
    The executive calls and operates the DLL fine the first time (NT, the applications task manager shows LabVIEW runtime runs, then stops when the DLL is done. However, when the executive calls the DLL a second time, it hangs, and the runtime engine never shows up in the applications task manager as running.
    However, this only occurs when something like IMAQ, DAQ, or another custom DLL call is occurring. We tried it with a simple DLL that only uses a call to the sound VIs, and it seems to run fine, although as the program called is very short, and the task manager slow, we never see the runtime engin
    e in the task manager. We are going to put a popup dialog in to ensure that the DLL is being called reliably, but we believe it is.
    We are unable to answer why when we call something that uses IMAQ, that the DLL doesn't run right the second time. We are unsure of the reasons, but believe it to be related to thread creation and destruction in the executive.
    If anyone out there has any insight into this, we would be happy to see it.
    We will be putting in a formal request for support from NI, but wanted to poll the audience as well, as we know from first hand experience that LabVIEW users often times have more experience with this sort of thing than developers.
    Thanks a bunch

    > Thanks for the information Greg. There is no documentation on this
    > issue, except for the email that we got from NI Support. This is
    > quite a new realm for us and NI alike. We would like to know what
    > your experiences have been on this subject. If you have a bit of
    > information, perhaps we should suggest a topic. As I said, this is a
    > new frontier for LabVIEW, and there are a lot of things that NI
    > doesn't know, and I'm sure a few of the programmers out there have
    > figured out.
    >
    I often answer emails from home, but I work for NI on the LV development
    team. So anything I know about, NI knows about. The info I was
    describing about the DLL execution system is not well documented since
    we were hoping that it would work we
    ll with the way Windows Apps are
    typically written. I suspect that we will need to write a Tech Note
    to cover the nitty gritty. This sort of info gets lost in manuals,
    and it is subject to change as we learn how people are expecting to
    use it.
    Anyway, my post was to explain why your use of it didn't work.
    In general, we believe that LV DLLs are thread savvy, reentrant
    VIs can be called from multiple threads simultaneously, execution can
    continue in the background after the DLL call has returned, and the UI
    is live provided the calling app processes messages in that thread.
    If you have other issues or questions, just ask.
    Greg McKaskle

  • Can I call a dll with a C++ Class Cstring variable?

    So,
    we bought an optiphase interferometer, and it comes with a dll and with LabVIEW example code.
    However, there is a big problem!
    The dll is a C++ dll and requires the C++ Cstring class!
    for example I can't get the function Boolean LoadDemodulatorDSPCore(Cstring arg1, U8Bit arg2) to work.
    They did provide a GetDllVersionchar(Cstr arg1, long arg2) which does work, (offcourse, it uses a standard C string pointer)
    but GetDllVersion(Cstring arg1) does not work. (offcourse not, it using the Cstring class)
    Is there a way to get CString classes to work in LabVIEW? (with a struct, or an binary array or whatever?)
    Or do I have to write a wrapper dll to convert CString classes to standard C string pointers?
    Thanks.

    Nils Gokemeijer wrote:
    So,
    we bought an optiphase interferometer, and it comes with a dll and with LabVIEW example code.
    However, there is a big problem!
    The dll is a C++ dll and requires the C++ Cstring class!
    for example I can't get the function Boolean LoadDemodulatorDSPCore(Cstring arg1, U8Bit arg2) to work.
    They did provide a GetDllVersionchar(Cstr arg1, long arg2) which does work, (offcourse, it uses a standard C string pointer)
    but GetDllVersion(Cstring arg1) does not work. (offcourse not, it using the Cstring class)
    Is there a way to get CString classes to work in LabVIEW? (with a struct, or an binary array or whatever?)
    Or do I have to write a wrapper dll to convert CString classes to standard C string pointers?
    Thanks.
    I'm afraid this won't really be
    possible without a wrapper DLL. A CString is more like an object with
    internal pointers and last time I checked into a DLL with a
    disassembler it seemed that the actual layout of the internal structure
    depends on the size of the string that is contained, with small strings
    being entirely embedded and larger strings being a pointer to the
    string. Trying to figure out these difficulties is something you should
    leave to compiler developers and not try to do yourself.
    One way that might be possible is to actually only create three or four
    C functions that are exported by a helper DLL. These functions would
    allocate a CString, copy a CStr into it and out of it and one to
    deallocate it. As far as LabVIEW is concerned you would treat the
    CString simply as a uInt32.
    Rolf Kalbermatter
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

  • XML validation with XSD, Cannot find the declaration of element 'rules'

    i am able to validate xml with XSD, from windows env, but same is not doing with linux, it is throwing error Cannot find the declaration of element 'rules'
    code here is
    validate(String aFilePath, String aSchemaFilePath)
    final String JAXP_SCHEMA_LANGUAGE = "http://java.sun.com/xml/jaxp/properties/schemaLanguage";
              final String W3C_XML_SCHEMA = "http://www.w3.org/2001/XMLSchema";
              final String JAXP_SCHEMA_SOURCE = "http://java.sun.com/xml/jaxp/properties/schemaSource";
    if(lSchemaFilePath == null){
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    factory.setAttribute(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA);
    factory.setAttribute(JAXP_SCHEMA_SOURCE, new File(aSchemaFilePath));
    factory.setNamespaceAware(true);
    factory.setValidating(true);
    DocumentBuilder builder = factory.newDocumentBuilder();
    mValidator = new ValidationHandler();
    builder.setErrorHandler(mValidator);
    lDocument = builder.parse(aFilePath);
    if(mValidator.mErrorExist){
              }Thanks
    vittal

    here's the sample gml file.
    <?xml version="1.0" encoding="UTF-8"?>
    <ksj:Dataset gml:id="C01_DataSet" xmlns:ksj="http://nlftp.mlit.go.jp/ksj/schemas/ksj-app" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://nlftp.mlit.go.jp/ksj/schemas/ksj-app AppSchema-C01-v1_0.xsd">
         <gml:description>CO1 description</gml:description>
         <gml:boundedBy>
              <gml:EnvelopeWithTimePeriod srsName="JGD2000 / (B, L)" frame="GC / JST">
                   <gml:lowerCorner>24.03 122.93</gml:lowerCorner>
                   <gml:upperCorner>45.52 145.82</gml:upperCorner>
                   <gml:beginPosition calendarEraName="Seireki">1965</gml:beginPosition>
                   <gml:endPosition calendarEraName="Seireki">1990</gml:endPosition>
              </gml:EnvelopeWithTimePeriod>
         </gml:boundedBy>
         <gml:Point gml:id="pt_1">          
              <gml:pos>24.33741667 123.73177778</gml:pos>
         </gml:Point>
         <gml:Point gml:id="pt_2">
              <gml:pos>24.33158333 124.10552778</gml:pos>
         </gml:Point>
         <gml:Point gml:id="pt_3">
              <gml:pos>26.28205556 127.73950000</gml:pos>
         </gml:Point>
         <gml:Point gml:id="pt_4">
              <gml:pos>26.23777778 127.96491667</gml:pos>
         </gml:Point>
         <ksj:Tide gml:id="fi_1">
              <ksj:position xlink:href="#pt_1"/>
              <ksj:springTideRange>13</ksj:springTideRange>
              <ksj:neapRange>5</ksj:neapRange>
              <ksj:averageHighTideInterval>69</ksj:averageHighTideInterval>
         </ksj:Tide>
         <ksj:TidalCurrent gml:id="fi_2">
              <ksj:position xlink:href="#pt_2"/>
              <ksj:risingTideCurrent>
                   <ksj:TidalCurrentInfo>
                        <ksj:currentDirection>14</ksj:currentDirection>
                        <ksj:currentSpeed>3</ksj:currentSpeed>
                   </ksj:TidalCurrentInfo>
              </ksj:risingTideCurrent>
              <ksj:fallingTideCurrent>
                   <ksj:TidalCurrentInfo>
                        <ksj:currentDirection>6</ksj:currentDirection>
                        <ksj:currentSpeed>3</ksj:currentSpeed>
                   </ksj:TidalCurrentInfo>
              </ksj:fallingTideCurrent>
         </ksj:TidalCurrent>
         <ksj:Marina gml:id="fi_3">
              <ksj:position xlink:href="#pt_3"/>
              <ksj:name>Marinafi3</ksj:name>
              <ksj:facilityCode>4703</ksj:facilityCode>
              <ksj:administrativeAreaCode codeSpace="AdministrativeAreaCode.xml">47205</ksj:administrativeAreaCode>
              <ksj:establishmentYear>
                   <gml:TimeInstant gml:id="ti_3">
                        <gml:timePosition>1987</gml:timePosition>
                   </gml:TimeInstant>
              </ksj:establishmentYear>
              <ksj:administratorClass>1</ksj:administratorClass>
              <ksj:numberOfKeptShips>
                   <ksj:NumberOfKeptShips>
                        <ksj:max>263</ksj:max>
                        <ksj:now>83</ksj:now>
                   </ksj:NumberOfKeptShips>
              </ksj:numberOfKeptShips>
              <ksj:frequencyOfSailing>900</ksj:frequencyOfSailing>
              <ksj:facilitiesAbove>facilitiesAbove1</ksj:facilitiesAbove>
              <ksj:facilitiesAbove>facilitiesAbove2</ksj:facilitiesAbove>
              <ksj:facilitiesAbove>facilitiesAbove3</ksj:facilitiesAbove>
              <ksj:facilitiesAbove>facilitiesAbove4</ksj:facilitiesAbove>
         </ksj:Marina>
         <ksj:MarinePhenomenonObservationFacilities gml:id="fi_4">
              <ksj:position xlink:href="#pt_4"/>
              <ksj:name>MarineName</ksj:name>
              <ksj:facilityCode>47001</ksj:facilityCode>
              <ksj:administrativeAreaCode codeSpace="AdministrativeAreaCode.xml">47323</ksj:administrativeAreaCode>
              <ksj:establishmentYear>
                   <gml:TimeInstant gml:id="ti_4">
                        <gml:timePosition>1983</gml:timePosition>
                   </gml:TimeInstant>
              </ksj:establishmentYear>
              <ksj:administratorClass>7</ksj:administratorClass>
              <ksj:observationItem>observationItem1</ksj:observationItem>
              <ksj:observationItem>observationItem2</ksj:observationItem>
              <ksj:observationItem>observationItem3</ksj:observationItem>
              <ksj:observationItem>observationItem4</ksj:observationItem>
              <ksj:observationItem>observationItem5</ksj:observationItem>
              <ksj:observationItem>observationItemOthers</ksj:observationItem>
         </ksj:MarinePhenomenonObservationFacilities>
    </ksj:Dataset>

  • How to call a DLL with a char or a uint8_t

    Good afternoon,
    I need to pass an array (image) to my dll.
    I was able to successfully do this using 
    imageProcess(int **a, ... ){;}
    function declaration and using a signed or unsigned 32 bit integer as data type in labview DLL call
    However, when I changed my function to either
    imageProcess(char **a, ... ){;}     or       
    imageProcess(uint8_t **a, ... ){;}
    And when  I set the Labview Dll Call data type to    unsigned 8 bit integer
    I get a Broken Arrow
    With error: The function name specified for this node cannot be found in the library. Right-click the Call Library Function node and select Configure, then choose the correct function name.
    I am also using IMAQ ImageToArray to obtain my array and using the ImagePixels(U8) output
    Thank you,

    Another possibility to make functions be unmangled is declaring them as extern "C" like this:
    for a single function.
    #define LibFunction __declspec(dllexport)
    extern "C" MgErr LibFunction MyFunction(uInt8 *);
    or:
    #define LibFunction __declspec(dllexport)
    #if defined(__cplusplus) || defined(__cplusplus__)
      extern "C" {
    #endif
    LibFunction MgErr MyFunction1(void);
    LibFunction MgErr MyFunction2(uInt32);
    #if defined(__cplusplus) || defined(__cplusplus__)
    #endif
    for multiple function prototypes.
    This will tell the compiler to not mangle the names if it is invoked on a cpp file. And the LibFunction declaration is to declare the function as exported to the compiler, saving you to have to provide a DEF file for that purpuse. Remember that other compilers and platforms might and often do use a different syntax for the export declaration.
    And alternative could be:
    #define LibFunction(retval) extern "C" retval __declspec(dllexport)
    LibFunction(MgErr) MyFunction(uInt8 *);
    Also before claiming that there is a huge bug in LabVIEW that needs fixing you should make sure that you understand all in and outs of your C compiler toolchain. Something I wouldn't dare to claim to do!
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

  • How to call a dll with special parameters in Labview?

    Hi,
    I have a dll file (compiled in C++) and I would like to call the individual functions from this dll file.
    I do not know however, how I must correctly define the initial parameters in LabView.
    That is the function, which I would like to call:
    DWORD OpenDiagDriver ( char* port,
    LPCSTR path,
    CANObjects CANObj[],
    WORD BitTiming = 0x4167);
    CANObjects CANObj[] is a pointer to array with CAN configuration data
    typedef struct
    DWORD Ident;
    BYTE Config;
    }CANObjects;
    CANObj[0].Ident= 0x18DA0000;
    CANObj[0].Config= 0x8C;
    CANObj[1].Ident= 0x18DA0000;
    CANObj[1].Config= 0x84;
    WORD BitTiming= 0x4167;
    I made a vi, but it doesn’t work.
    Attachments:
    example.vi ‏29 KB

    Hard to say without the full C source. Are you building the DLL according to the CIN rules (see Using External Code in LabVIEW)? Mapping clusters to C code in DLLs is not a simply process and we generally recommend to create wrappers. However, since your structures are fairly straightforward, you could use the "Adapt to Type" as you are trying to do.
    I recommend checking out the mentioned manual and also the examples in \examples\dll\data passing\Call Native Code.llb and the associated C files.
    Brian Tyler
    http://detritus.blogs.com/lycangeek

  • Call a DLL with Java

    Hi,
    I have a C ANSI DLL which communicates with a JAVA applet. I use JNI.
    But this isn't the best solution :
    the host which is running the applet (Internet Explorer) must have the DLL in local and a .java.policy file in order to run the applet.
    Is there another technology which can avoid that problem ? Using no .java.policy and dll file on the host, ie put the DLL only on the server ?
    Thanks for your suggestions.

    You could certainly have your applet make calls back to the server and have the server execute the non-secure code in the DLL. This, of course, assumes that you don't actually need to run the DLL on the client itself.
    For the case where you just need to make a couple of calls into the DLL, you could implement your own socket communication. For anything more complicated, I'd recommend that you look into RMI.
    Note that it'll be a lot slower doing your DLL calls across the wire, so in this situation, you want to do as much processing on either end of the communication channel as possible, and only transfer results back and forth.
    - K

  • Calling web service with utl_dbws and parsing the xml result with Xpath

    I'm invoking a web service from the database(10.2.0.2.0) using sys.utl_dbws and all is working well. After executing response := sys.utl_dbws.invoke(call_, request); I execute dbms_output.put_line(substr(response.getstringval(),1,1500)); which results with:
    <refCursor10gProcessResponse xmlns="http://xmlns.oracle.com/refCursor10g">
    <result xmlns="http://xmlns.oracle.com/refCursor10g">
    <Row xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/ADM/SERVICES/GETST/">
    <Column name="C_ID" sqltype="VARCHAR2">20292</Column>
    <Column name="AYR" sqltype="VARCHAR2">2002</Column>
    <Column name="EDT" sqltype="VARCHAR2">2002-06-13</Column>
    <Column name="ETUS" sqltype="VARCHAR2">O</Column>
    <Column name="PC" sqltype="NUMBER">537</Column>
    <Column name="SG" sqltype="VARCHAR2"/>
    <Column name="VD" sqltype="VARCHAR2">Y</Column>
    <Column name="VR" sqltype="VARCHAR2">R</Column>
    <Column name="TS" sqltype="VARCHAR2">31</Column>
    <Column name="D" sqltype="VARCHAR2">I</Column>
    <Column name="T" sqltype="VARCHAR2">1</Column>
    <Column name="P" sqltype="VARCHAR2"/>
    <Column name="MT" sqltype="VARCHAR2">2</Column>
    <Column name="PTAT" sqltype="VARCHAR2"/>
    </Row>
    </result>
    </refCursor10gProcessResponse>
    How do I parse out just the value 20292 of Column name="C_ID" using xpath? I've tired but I don't think i have the xpath set up correctly:
    dbms_output.put_line(response.extract('//result/Row/Column/child::text)','xmlns="http://xmlns.oracle.com/refCursor10g"').getstringval());
    Error messgae is:
    ORA-30625: method dispatch on NULL SELF argument is disallowed
    ORA-06512: at "ADM.CONSUME_WEB_SERVICES", line 439
    ORA-06512: at 3
    Thanks

    Tried getting by the attribute but I don't think I have the format correct:
    dbms_output.put_line(response.extract('//result/Row/Column@C_ID/child::text()','xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/ADM/SERVICES/GETST"').getstringval());
    Here's the full soap response envelope:
    <env:Envelope
    xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
    <env:Header/>
    <env:Body>
    <refCursor10gProcessResponse xmlns="http://xmlns.oracle.com/refCursor10g">
    <result xmlns="http://xmlns.oracle.com/refCursor10g">
    <Row xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/ADM/SERVICES/GETST/">
    <Column name="C_ID" sqltype="VARCHAR2">20292</Column>
    <Column name="AYR" sqltype="VARCHAR2">2002</Column>
    <Column name="EDT" sqltype="VARCHAR2">2002-06-13</Column>
    <Column name="ETUS" sqltype="VARCHAR2">O</Column>
    <Column name="PC" sqltype="NUMBER">537</Column>
    <Column name="SG" sqltype="VARCHAR2"/>
    <Column name="VD" sqltype="VARCHAR2">Y</Column>
    <Column name="VR" sqltype="VARCHAR2">R</Column>
    <Column name="TS" sqltype="VARCHAR2">31</Column>
    <Column name="D" sqltype="VARCHAR2">I</Column>
    <Column name="T" sqltype="VARCHAR2">1</Column>
    <Column name="P" sqltype="VARCHAR2"/>
    <Column name="MT" sqltype="VARCHAR2">2</Column>
    <Column name="PTAT" sqltype="VARCHAR2"/>
    </Row>
    </result>
    </refCursor10gProcessResponse>
    </env:Body>
    </env:Envelope>
    Any thoughts?

  • Calling a .DLL with Adobe AIR

    Hi!
    Is there a painless way to call a method of a windows dll from Adobe AIR?
    Thank you!

    Can anyone help me how to call DLL file in air2.0? Could you please give some good example...

  • PL SQL Web Service with XML output - Remove the declaration from the proces

    Using JDeveloper to create PL/SQL web services it inserts the generic declaration
    <?xml version="1.0" encoding="UTF-8" ?>. I want to remove this line from the payload.
    Here is the entire payload. Why is this inserted and how do I get rid of it.
    <?xml version="1.0" encoding="UTF-8" ?>
    - <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    - <SOAP-ENV:Body>
    - <SOAP-ENV:Fault>
    <faultcode>SOAP-ENV:Server.Exception:</faultcode>
    <faultstring>java.sql.SQLException: java.sql.SQLException: ORA-04068: existing state of packages has been discarded ORA-04063: package body "FDC_API.PVR_IPS_TICKET" has errors ORA-06508: PL/SQL: could not find program unit being called ORA-06512: at line 1</faultstring>
    <faultactor>/pvr_ora-pvr_tickets-context-root/Pvr2ips</faultactor>
    </SOAP-ENV:Fault>
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>rvice, my payload has the

    We can generate jaxws from 11.1.2.0 onwards using This is now provided by the TopLink web service provider builder, which can be via the TopLink DBWS provider wizard from JDeveloper since the 11.1.2.0.0 release
    1.4.4 Database Web Services (DBWS)
    http://docs.oracle.com/cd/E23943_01/doc.1111/e26045/general.htm#CHDIEEHG
    Hope that heps
    Regards,
    Sunil P

  • Calling a dll created with vision 7.0 from visual basic doesn't work

    I created a dll using some vision 7.0 functions and Labview 7.0 environment. I call this dll from visual basic. The dll will work fine as long as I don't stop the visual basic program execution. As soon as I stop the program execution the dll will no longer work. I must reload the visual basic environment and the call to the dll will start working again. I created the exact same dll but I created it with vision 6.0 in Labview 6i environment. It works great and has no issues.
    Attachments:
    Test.vi ‏36 KB

    Roberto N. wrote:
    Thank you Jordan, I'm using Labview 7.1.
    Anyway I've resolved the problem by adding the "lvanlys.dll" file (present in "..\Labview 7.1\resource\lvanlys.dll" path) as support file in the building process. Now the DLL containing the analysis functions works correctly.
    Natalino Roberto
    Ok, you probably got lucky since the lvanlys.dll seems to implement that function directly. However most Advanced Analysis functions are just redirected by lvanlys.dll to the Intel Math Kerneal Library that gets installed with LabVIEW 7.1 and higher. The only way to get that properly installed with your LabVIEW executable or DLL is to create a LabVIEW installer in your Application Builder and make sure to select under "Installer Settings->Advanced" the "LabVIEW Run-Time Engine" and the "Analyze VIs Support". Then use that installer to install your DLL on another computer.
    Rolf Kalbermatter
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

  • Stack overflow when calling a DLL

    I have developped a DLL in Ada.
    I tried to call a function of this DLL from a C++ executable.
    My program crashed because of a stack overflow.
    Then, I increased the stack size of my program (linker option), and now it
    works.
    Calling this DLL through the call library function from a 6.0 Labview
    program causes the same stack overflow.
    How could I increase the stack size of my Labview program ?
    Thanks.

    Hi,
    I have never come across this issue but here are a few things you can try:
    1) Change the Calling Convention between C and StdCall(WINAPI). The main difference between the two calling conventions has to do with when the stack is cleaned up. In one method, the stack is cleaned earlier than in the other method.
    2) Call your dll with LabVIEW 7.0. You can find the evaluation version of the latest version at http://www.ni.com/labview
    Good luck
    Feroz

  • JNI calls using dll build in DEBUG mode

    I have deployed a filter which loads a dll in the init method. The dll is build in DEBUG mode. The doFilter() method is never called. But If I build the same dll with out DEBUG parameter the doFilter() method is called. what is the issue? I need to debug the dll by attaching it to Visual Studio.
    --JArchie

    > i had a requirement to invoke a RFC Async and recieve
    > the results in my program ...
    That is not possible. When you call an RFC async, you cannot receive the result of the RFC. If you want the results, you have to call the RFC syncronously.
    When you debug, the debugger calls the RFC synchronously, to enable you the debugging of the RFC.
    Regards
    Stefan

Maybe you are looking for

  • Justification of Nokia Care Bangladesh

    With due respect i just want to question of having Nokia Care (service centers) in Bangladesh. There are several complains exists against them. Recently i gave my new 5800 for servicing (since there is a big question regarding the launching of ever w

  • Ad-Hoc query output issue

    Hello Experts, Recently we have upgraded the system and we are facing issues with Ad-Hoc query output. Issue : After entering data in selection fields and click on "OUTPUT" button we  are getting output. now I changed the selection field  data and cl

  • Change iPod's name itunes 11

    Hello everyone, I'm having troubles to change the name of my iPod Video in version , I restored it and the iTunes automatically gives the iPod my user's name, thing I want to change and can't find the way, if anybody could help me.

  • Drag an image from desktop into Aperture

    I can't drag an image into Aperture from my desktop. It just comes back to the desktop. Is there something I'm missing? Do I use import for one image?

  • Need QUERY result in Graph

    Dear Experts, I am having the following requirement.           Can it be possible to present the QUERY result in Graph ? I read many thread in SDN, I found through APD/WAD we can do it . But I am confused. But I am not getting any thread , How to pro