Api_civ.dll functions definition

Good evening,
I currently use an ARINC PXI Board : ACX429-3U-8,
I configure the board through a NI TestStand program with the library "api_civ.dll",
but I have to use the functions with a name finishing by CVI ( example: Api429CloseCvi )and I can only find a definition of no cvi functions (Api429Close ) in the document api429refman.pdf.
And i'm not shure they are the same.
Do you know where i can find those definitions ?
Thank you

Hi SLz,
Normally the card's driver includes LabVIEW and LabWindows/CVI functions, like it's shown in the .png attached.
Therefore, I suggest you to have a look on the chapter 2 of this pdf :
http://www.ueidaq.com/media/catalog/product/pdf/manual/dnx-429-5xx-manual.pdf
Hope you'll find a way to solve your problem.
Mathieu TUR
NIF AE
Mathieu_T
Certified LabVIEW Developer
Certified TestStand Developer
National Instruments France
#adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
LabVIEW Tour
Journées Techniques dans 10 villes en France, du 4 au 20 novembre 2014
Attachments:
Hierarchy.png ‏147 KB

Similar Messages

  • LabVIEW call Win32 API DLL function from third party

    Hi everyone,
    I'm trying to build a LabVIEW 2010 interface on 32-bit Window XP system to configurate and communicate to an Anglient laser head through its USB expansion box. I contacted the vendor and they shared a win32 API with some dll files. I started with a function called "A55292Find", but the CLF node always pop up error 1097.I checked the MSDN to get the corresponding LabVIEW data type for CLF.
    My question is: Do I need to initialize those arguments? (How can I know the values of them if initialization is needed?)
    Could anyone help me figure out what's the problem?
    Here is what I have from API documents about this function:
    The A55292Find function returns lists of handles and board types for all the 55292 USB
    Expansion Modules connected to the system.
    A55292RC __cdecl A55292Find(
    HANDLE hBoxes[], // List of handles for the boxes found. (as Unsigned 32-bit integer numeric)
    BOARDTYPE PortABrdType[], // List of board types for slot A boards (as Unsigned 16-bit integer numeric)
    BOARDTYPE PortBBrdType[], // List of board types for slot B boards (as Unsigned 16-bit integer numeric)
    WORD *spMaxBoxes); // dimension for all of the passed arrays. (as Unsigned 16-bit integer array data pointer)
    // (function return type as Unsigned 32-bit integer numeric)
    Parameters
    HBoxes[] Array that will receive the list of HANDLES for all the 55292 boxes connected.
    PortABrdType[] An array that will receive Slot ‘A’ board type information for each 55292 box.
    PortBBrdType[] An array that will receive Slot ‘B’ board type information for each 55292 box.
    spMxBoxes Passes the maximum number of values that can be held in hBoxes, PortABrdType, and PortBBoardType arrays to the A55292Find routine and returns the actual number of boxes found
    The return value will be one of the following A55292RC return codes:
    Value Meaning
    A55292_NO_ERROR No error
    A55292_TIMEOUT Timeout accessing a shared memory
    Remarks
    This routine must be called to obtain handles and board type information used in calling all the other routines. If there are significantly more array elements than boxes, the routine will take longer to complete.
    These are the definitions: 
    typedef DWORD A55292RC; enum{A55292_NO_ERROR, A55292_HANDLE_ERROR,...}
    typeder WORD BOARDTYPE; enum{A55292_PCAL_BOARD, A55292_NO_BOARD, ...}
    Thanks a lot,
    Kang
    Solved!
    Go to Solution.
    Attachments:
    call A55292Find.vi ‏10 KB

    nkang11 wrote:
    Hi Mr. Kalbermatter,
    As you told me, I should try to use the defined enumeration words as control and indicator.
    For the previous CLF node, it successfully returned the hardware configuration (I have only connected a board at slot A):
    But I really want to see a string return as "A55292_PCAL_BOARD" which is defined by "typedef WORD BOARDTYPE; enumeration {...}; Does that mean I need to change the data type or do something like "converter"? Or initialize the array first, then convert it to string type?
    Right now, I'm trying to open the laser card by using "A55292PcalOpen(HANDLE hDev, SLOTSELECT SlotSelector);" function which requires to use the enumeration constants from " typedef WORD SLOTSELECT; enum {A55292_PORT_A, A55292_PORT_B};" but I'm confused to shot an constant control to a new CLF node.
    Since almost all of the arguments in dll function are typedefined as WORD, short and struct et al, I hope you could give me some hints on it.
    Thank you very much sincerely!
    Kang
    Depending on the actual C implementation you can simply create a LabVIEW enum with the according item names or use a ring control instead. Teh enum requires the numeric values of the items to be in consecutive order without any gaps in between. This is a given if the C definition never assigns a specific number to the item. If the C enum is not consecutive you need to go with a ring control instead.
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

  • When to call DSDisposeHandle when you have a DLL function acting as a repeating DS dynamic data source?

    Hi 
    I have a DLL function acting as a dynamic data source within a LabVIEW application (see attachment) - I am using DSNewHandle to dynamically allocate 2D array handle storage via the LV memory manager for the arbitrary size data arrays to be passed into the application. I had assumed that these memory blocks would (magically) be disposed when appropriate by the LabVIEW built in processing blocks that sit downstream, however this is not the case and the LabVIEW system memory usage keeps increasing until LabVIEW environment is exited (not simply if just the offending application is stopped or closed).
    So my question is how and where to mop up the used up array buffers in the application processing chain and how do I know when the buffers are actually exhausted and not being reused downstream (for instance the two 2D arrays are first combined into a complex 2D array by the re+im to complex labview operator - is the data memory out of this stage totally different from the inputs or is it some modified version of the input arrays - if totally different and the input 2D arrays are not wired into any other blocks why does the operator not dispose the input data stores?)
    Perhaps Im going about this the wrong way having the DLL data source dynamically allocate the data space arrays? Any advice would be gratefully received
    Regards
    Steve
    Solved!
    Go to Solution.
    Attachments:
    DataGetFloat.PNG ‏23 KB

    Then instead of doing:
    DLLEXPORT int32_t DataGetFloatDll(... , Array2DFloat ***p_samples_2d_i, ...)
    if ( p_samples_2d_i )
    // *p_samples_2d_i can be non NULL, because of performance optimization where LabVIEW will pass in the same handle
    // that you returned in a previous call from this function, unless some other LabVIEW diagram took ownership of the handle.
    // Your C code can't really take ownership of the handle, it owns the handle for the duration of the function call and either
    // has to pass it back or deallocate it (and if you deallocate it you better NULL out the handle before returning from the
    // function or return a different newly allocated handle. A NULL handle for an array is valid and treated as empty array.
    *p_samples_2d_i = (Array2DFloat **) DSNewHandle( ( sizeof(int32_t) * 2 ) + ( sizeof(float) * channel_count * sample_count ) );
    // Generally you should first try to insert the data into the array before adjusting the size
    // the most safe would be to adjust the size after filling in the data if the array gets bigger in respect to the passed in array
    // and do the opposite if the adjusted handle happened to get smaller. This is only really important though if your C code can
    // bail out of the code path because of error conditions between adjusting the handle size and adjusting the array sizes.
    // You should definitely avoid to return from this function with the array dimensions indicating a bigger size than what the
    // handle really is allocated for, which can happen if the array was resized to a smaller size and you then return because of errors
    // before adjusting the dimension sizes in the array.
    (**p_samples_2d_i)->Rows = channel_count;
    (**p_samples_2d_i)->Columns = sample_count;
     you should be doing:
    DLLEXPORT int32_t DataGetFloatDll(... , Array2DFloat ***p_samples_2d_i, ...)
    MgErr err = NumericArrayResize(fS /* array of singles */, 2 /* number of dims */, (UHandle*)p_samples_2d_i, channel_count * sample_count);
    if (!err)
    // Fill in the data somehow
    // Adjust the dimension sizes
    (**p_samples_2d_i)->Rows = channel_count;
    (**p_samples_2d_i)->Columns = sample_count;
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

  • Complicated structure for DLL function

    I need LV6 to pass and get back parameters to a DLL function whose prototype is:
    int APIENTRY GetData(ACQDATA *Data)
    ACQDATA has the following structure
    typedef struct{
    unsigned long huge *s0;
    unsigned long far *region;
    unsigned char far *comment0;
    double far *cnt;
    HANDLE hs0;
    HANDLE hrg;
    HANDLE hcm;
    HANDLE hct;
    }ACQDATA;
    From the DLL documentation I could see that
    - the function modifies its argument
    - the (fixed) length of the second, third and fourth parameter is specified
    No idea of the length of "s0". I've tried several LV clusters including a cluster with four pre-allocated arrays (buffers) and four scalars. But no luck so far.
    If a C wrapper function is the only solution to pass the parameters correct
    ly, can anyone show me an example. Can I use the Code Interface Node for that purpose though I only own the Base Package version of LV or shall I write another DLL function?
    Please help asap

    Unfortunately I am new to C programming, but I'll try to give you the complete picture of what happens.
    There's no definition for HANDLE in the DLL documentation but windows.h is included, so I guess the following
    #define HANDLE void * //32bit?
    In my LV routine I tried U32 variables for the HANDLE typed parameters.
    In one of attempt LV passes to the function a cluster (I make no mistake with the order!) with four arrays and four U32, all of them preset to some value. Well.. these values (all)are not changed when the function returns. The return value of the function says no error, anyway.
    I tried other clusters: with and without arrays, with all (or part) scalars and all (or part) strings. No way either.
    Sometimes LV itself crashes, sometimes I get
    the original values I imposed before the call.
    I suspect the LV cluster structure makes me miss the right level of indirection for the first 4 variables in the structure (called *s0, *region, *comment and *cnt): when either I pass arrays or scalars as components of the cluster.
    Hope this helps you to help me
    Cheers
    Piero

  • Question on the parameter type of DLL functions

    Question on the parameter type of DLL functions
    I am trying to develop an interface to control a laser with LV8.2  I am planing to use the VI “Call Library Function Node” to call the DLL and set the exact same parameters of functions in the DLL.
    According to the DLL manual of the laser, there are six functions.  One of the prototypes is:  function getstatuspointer : pointer. I don't know how to set this parameter for the function. Is there anyone who can give some hints? Thanks!
    BTW :The following is a description of the function:
    This function returns a 32 bit pointer to the STATUS data structure (Tstatusrec). In the 32 bit DLL, every application is using its own copy of the data structure (local
    memory). The data structure is a packed structure. "packed" means that the fields in the structure are not aligned on word or double-word boundaries.
    Tstatusrec = packed record
                            size : word;
                            initstat : byte;
                            queuefill : byte;
                            anzapp16 : word; (not used)
                            anzapp32 : word;
                            anzdock16 : word; (not used)
                            anzdock32 : word;
                            dll16ver : tchararray; (not used)
                            dll32ver : tchararray;
                            excimerver : tchararray;
                            excimer : TExcimerStatus;
                      end;

    Hi Jack,
    This is a good starting point when using Call Library Function node. Check out this Help Page
    Van L
    NI Applications Engineer

  • How to make input parameters as optional in the function definition

    I have created a function for a data service which is at the Normalized layer and has 3 input parameters.
    This function is called at the Integration layer in which we have to pass only one parameter. But for the remaning 2 parameters it is throwing an error as we cannot pass those parameters.
    Is it possible that we can pass less number of parameters in the higher layer.
    I had also made those parameters as optional in the function definition(by applying '?' while defining the arguments-e.g. $x as xs:string?), but error was thrown while generating the query plan.
    I have attached a Demo project, in which i have defined a function at the normalized layer and this function is been called at the integration layer.
    Thanks,
    Kinjal

    Thanks mreiche for the reply
    But the problem is that while writing
    function myfunction( arg1 as xs:string, $arg2 as xs:string?) { ... }
    in function definition in the normalized layer, the query plan is throwing following error:-
    com.bea.ld.QueryException: Cannot generate XQuery for the function {ld:DemoProject/Normalized/TestGeo}getGeo:3
    at weblogic.rjvm.BasicOutboundRequest.sendReceive(BasicOutboundRequest.java:108) at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:290)
    at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:248) at com.bea.ld.Server_ydm4ie_EOImpl_816_WLStub.executeFunction(Unknown Source)     at workshop.liquiddata.xds.views.queryplan.QueryPlanPanel.compileFunction(QueryPlanPanel.java:583) at workshop.liquiddata.xds.views.queryplan.QueryPlanPanel.access$900(QueryPlanPanel.java:39) at workshop.liquiddata.xds.views.queryplan.QueryPlanPanel$5.run(QueryPlanPanel.java:469) at java.lang.Thread.run(Thread.java:534)
    Caused by: com.bea.ld.QueryException: Cannot generate XQuery for the function {ld:DemoProject/Normalized/TestGeo}getGeo:3 at com.bea.ld.EJBRequestHandler.invokeFunction(EJBRequestHandler.java:720) at com.bea.ld.EJBRequestHandler.executeFunction(EJBRequestHandler.java:339) at com.bea.ld.ServerBean.executeFunction(ServerBean.java:95) at com.bea.ld.Server_ydm4ie_EOImpl.executeFunction(Server_ydm4ie_EOImpl.java:312)
    at com.bea.ld.Server_ydm4ie_EOImpl_WLSkel.invoke(Unknown Source)
    at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:491)
    at weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerRef.java:120)
    at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:434)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:147)
    at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:429)
    at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:35)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)
    Caused by: com.bea.ld.server.FunctionCallQueryBuilder$QueryBuilderException: The following parameter type is not supported: {http://www.w3.org/2001/XMLSchema}string?
    at com.bea.ld.server.FunctionCallQueryBuilder.addParameter(FunctionCallQueryBuilder.java:257)
    at com.bea.ld.server.FunctionCallQueryBuilder.buildQuery(FunctionCallQueryBuilder.java:99)
    at com.bea.ld.EJBRequestHandler.invokeFunction(EJBRequestHandler.java:716)
    But no error is thrown when I call this function at the Integration layer,using
    for $f in mfunction( 'test', () )
    and the output which i get is as expected.

  • Error when calling a DLL function

    Hi,
    I am using external C++ code with labView. One of the DLL functions I use serves to call files. The directory and the name of the file is is passed as a parameter for this function. When the VI is running and arrives at this function (I use the Calling Library Function Node tool), the following message is displayed:
    ERREUR de type class boost::filesystem::filesystem_error.
    boost::filesystem:ath: invalid name "D:\Documents Johan\Johan\Stitching\Fichiers de mesure\front parfait\13z2" in path: "D:\Documents Johan\Johan\Stitching\Fichiers de mesure\front parfait\13z2"
    I do not know why this message is sent to me.
    Thanks for your answer
    JF

    Hello,
    How are you passing the file path to the DLL -- are you passing it as a
    string?  If you are passing at as a string, I would do some basic
    console output to make sure that your DLL is receiving the file path
    corectly as a string and perform your appropriate C++ function in your
    DLL.  If the error is occuring with passing the file path you
    might want to check out the links below for a little more information
    on this.
    http://zone.ni.com/devzone/conceptd.nsf/webmain/7d6a20fe02edbf318625690700704cf3#4
    http://digital.ni.com/public.nsf/websearch/4E9234BA4C7C4ABE86256E3C0074760F?OpenDocument
    http://digital.ni.com/public.nsf/websearch/3B994675B17C654A86256FDD00754DD2?OpenDocument
    Hope this helps,
    Travis M
    NI
    Travis M
    LabVIEW R&D
    National Instruments

  • Calling CVI DLL Function from Visual Studio

    HI all ,
    Iv'e created a DLL using CVI and i'm tring to call one of it's function from visual studio 6.0
    I'm getting a general error , is there a specific prototype that i need to set my functions in ordrer to call them ?!  
    Kobi Kalif
    Software Engineer

    You will need to distribute the CVI RTE along with your DLL, since anything you write in CVI is going to use the RTE.
    As far as calling the DLL functions, you can use the CVI defined macros
    <return type> DLLEXPORT DLLSTDCALL <function name> (<param1 type> <param1> ...) {
    to declare your functions in the DLL for access by a VS application.
    for example
    int DLLEXPORT DLLSTDCALL myfunction (int funparam1, double func param2) {
    There are options for identifying which functions to export from your DLL, I use "functions marked for export" but there are other choices available.  I also include a type library so when you type the name of a DLL funciton in VS6 you see a balloon popup with the function signature.  This is a check box in the target settings.  You have to create a ".fp" file (function panel file) to collect the function info for the library.
    From VB6 you can access the DLL a couple of ways, but I usually add the DLL as a reference.

  • How to Use DLL Function in Java Applet

    Hi all,
    I have been assigned a task to develop java applet. The problem is, I need to use DLL functions in my applet to read records. Could you pls anyone guide me how to interface DLL and applet to read records with sample code?
    I'm using JDK 1.5.0_06 and Windows XP OS. thanx..
    best rgds,
    jpdbay

    You will need to use Java Native Interface JNI. Ther are many posts on the subject, please search, and this is the documentation:
    http://java.sun.com/j2se/1.5.0/docs/guide/jni/spec/jniTOC.html

  • How to pass a struct to a DLL function and accessing it in another VI

    Hi friends,
                       I am new to labview. I need to create a demo program in labview ,for displaying image from our own image capturing system. We have a  DLL ( build in VC++) containing functions for capturing image from our system. Now I need to create a VI library for some of functions in DLL and Create a Demo program using those created subvi library . I used "Call Function node" and created some of subvi's.
     Some of our DLL functions need to pass struct pointers.  Our function prototype will be similar to the following function.
    __declspec(dllexport) int __stdcall Initialize( unsigned char *imagebuffer,struct config *Configuration);
    The passed struct is similar to
    struct config
      double                val1[3];
      unsigned short   val2;
      bool                    val3;
      bool                    val4[3];    
      unsigned char    val5;    
      unsigned char   val6[3];
      bool                    val7[26];
    For passing "unsigned char *imagebuffer"  I initialized array with "Numeric constant " and set the size of the array and send to the function.
    The problem here is, I used this array in one of the subvi. 
    How can I use the returned imagebuffer array  in my main demo program. How to connect the image array to subvi "Connecter Pane"
    And  which control  can I use to display the image. The image data I get is form of 1-D Array .
    The second problem is,
                                 For passing the structure,  I used "Bundle " and filled the bundle with all the datatypes as in my struct and passed to the function. Is it correct ?  How to access this bundle after returned from function  in another Vi. ie.) How to connect this bundle to the connter pane ?
    Thanks for your valuable suggestions.
    aajjf.
    Message Edited by aajjf on 04-19-2007 05:34 AM

    aajjf wrote:
    Hi friends,
                       I am new to labview. I need to create a demo program in labview ,for displaying image from our own image capturing system. We have a  DLL ( build in VC++) containing functions for capturing image from our system. Now I need to create a VI library for some of functions in DLL and Create a Demo program using those created subvi library . I used "Call Function node" and created some of subvi's.
     Some of our DLL functions need to pass struct pointers.  Our function prototype will be similar to the following function.
    __declspec(dllexport) int __stdcall Initialize( unsigned char *imagebuffer,struct config *Configuration);
    The passed struct is similar to
    struct config
      double                val1[3];
      unsigned short   val2;
      bool                    val3;
      bool                    val4[3];    
      unsigned char    val5;    
      unsigned char   val6[3];
      bool                    val7[26];
    For passing "unsigned char *imagebuffer"  I initialized array with "Numeric constant " and set the size of the array and send to the function.
    The problem here is, I used this array in one of the subvi. 
    How can I use the returned imagebuffer array  in my main demo program. How to connect the image array to subvi "Connecter Pane"
    And  which control  can I use to display the image. The image data I get is form of 1-D Array .
    The second problem is,
                                 For passing the structure,  I used "Bundle " and filled the bundle with all the datatypes as in my struct and passed to the function. Is it correct ?  How to access this bundle after returned from function  in another Vi. ie.) How to connect this bundle to the connter pane ?
    Thanks for your valuable suggestions.
    aajjf.
    Message Edited by aajjf on 04-19-2007 05:34 AM
    You say nothing about how your cluster looks but I'm afraid you did the standard error here and placed arrays in it. That is not what the C structure is representing for several reasons.
    First fixed size arrays in C are inlined inside a structure, so are not a pointer but for the case of your val1 element three doubles.
    Second although not relevant here because of above point: LabVIEW arrays are not the same as C arrays. LabVIEW uses a pointer to a pointer and has the size of the array in elements prepended to the array data. C simply uses a pointer and all the rest is the programmers sorrow. The Call Library Node does convert the top level element of variables you pass according to the type configuration of that parameter but does no conversion of internal elements at all. So passing clusters with anything like arrays or strings is always wrong unless the DLL is aware of the specific datatypes LabVIEW uses.
    Last but not least you can end up with alignment issues. Elements in structures are aligned by every C compiler to a certain value. This value can be defined by the programmer in the project settings or for Visual C through #pragma pack() statements in the C code. The alignment rule says that an variable is aligned to the smaller of the two values that are either a multiple of the variable element size or the alignment setting. Most 32bit code nowadays uses 8 bit default alignment but LabVIEW always uses 1 byte. In your case there is nothing to observe since the large variables are at the beginning. Otherwise you might have had to insert filler elements in the LabVIEW cluster.
    One last thing bool is a C++ type only. Its size is 1 byte and incidentially this is the same LabVIEW uses for Booleans.
    Rolf Kalbermatter
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

  • How to "end" function definition in SQL plus?

    I am using Oracle 11g and SQL plus.
    I am trying to define a function and get back to the SQL prompt, but it is just not exiting the function definition.
    SQL> create function dept_count (dept_name varchar(20))
    2 returns integer
    3 begin
    4 declare d_count integer;
    5 select count (* ) into d_count
    6 from instructor
    7 where instructor.dept_name = dept_name
    8 return d_count;
    9 end
    10 ;
    11
    12
    13
    14
    15
    16 ;;;
    17 end dept_count;
    18 ;
    19
    20 ; <--- I was expecting the SQL> prompt here but it doesn't appear.
    What should I do? Please help. Thanks.

    And, to answer probably the most frequently asked question when I was an Oracle instructor ...
    If you are saving this statement in a file to execute later, after the "/" at the bottom, hit return, so that your file contains a line feed after the /, rather than your file ending with the /
    Otherwise you get the annoying, but completely harmless, error message "Input truncated after (number) characters" when you compile the program.

  • Error 0x80040707 - DLL function call crashed QTInstallCode

    Installing QuickTime Stand-Alone QuickTimeInstaller.exe Version 7.0.4.0 I get the following error and QuickTime will not load or function:
    Unhandled Exception
    Error Number: 0x80040707 - DLL function call crashed: QTInstallCode.QuickTimePostInstallProc
    Setup will now terminate.

    I was able to solve this, but I had to uninstall all instances of iTunes, ipod and QuickTime, delete their directories, use http://support.microsoft.com/kb/290301/
    to delete the installations of each and then use msconfig to remove them from the Startup.
    After that I rebooted and did a new install with the QuickTime Stand Alone and it worked!

  • Error message: 1021: Duplicate function definition.

    Hi All,
    First let me start by saying that I know next to nothing about Flash.  I have inherited a website maintenance project that has a Flash rotating image banner.  I have managed to get the images to fade-in and fade-out correctly, but now I need to make these images clickable - linking images to pages in the website.  I have read many posts here and have reviewed the video tutorials.  I have been able to get the first image clickable using this AS3 action:
    mars_btn.addEventListener(MouseEvent.CLICK, buttonClickHandler);
    function buttonClickHandler(event:MouseEvent) :void {
            navigateToURL(new URLRequest("http://somewebsite/mars.php"));
            trace("I'm clicked");
    However, when I attempt to make another image clickable by using a different instance of a button I get the error message:
    1021: Duplicate function definition.
    I have a separate instance of a button with this AS3 action:
    jupiter_btn.addEventListener(MouseEvent.CLICK, buttonClickHandler);
    function buttonClickHandler(event:MouseEvent) :void {
            navigateToURL(new URLRequest("http://somewebsite/jupiter.php"));
            trace("I'm clicked");
    Obviously I'm not understanding how I'm supposed to do this so that I don't create a duplicate function definition.  Any help would be most appreciated.

    excuse me , I have a question i hope that you help .. ( im new in here )
    we were asked to create an interactive application on flash in two languages..
    so i created two different fla files same exact codings ... i was wondering how can i combine them so the viewer can be able to choose the language from a button ?
    when i try to combine them i get lots of errors of duplications in the actionscript
    PS : MY MAIN PAGE INCLUDES A CAROUSEL with images ..
    I was thinking of saving one of the fla  as a movie and then add it some how to the second fla and combine it with a button but i can't figure it how..
    i hope i was clear enough.. but is there any possibility to help me please ?!
    when i tend to change names or something it creates error.. ( IM NOT A PRO IN AS3 ) and when i dublicate the scenes it give duplication errors.. WHAT IS THE SOLUTION ??
    this is the code of the actionscript in the main page.. ( the carousel's code i took from someone ) and i used it on my project
    import com.ccanvas.carousel.*;
    var centerX:Number = stage.stageWidth/4;
    var centerY:Number = stage.stageHeight/4;
    var carc:Carousel = new Carousel(centerX, centerY, 256, 75, "icons.xml");
    carc.addTooltip(new tooltip); // use 'tooltip' movieclip for item tooltip
    addChild(carc); // add carousel to stage
    function down(event:MouseEvent):void {
    trace(event.currentTarget.toolText); // simple click interaction
    function destroyCarousel(event:MouseEvent):void {
    carc.destroy(); // remove all item in carousel as well as tooltip
    function removeNextItem(event:MouseEvent):void {
    if(carc.numOfItems > 2) {
      carc.removeItem(2); // remove the item next to the remove item icon
    create.addEventListener("mouseDown", createCarousel);
    function createCarousel(event:MouseEvent):void {
    if(carc.CREATED == false) {
      // recreate the carousel
      carc = new Carousel(centerX, centerY, 256, 75, "icons.xml");
      carc.addTooltip(new tooltip);
      addChild(carc);
    }/* Click to Go to Scene and Play
    Clicking on the specified symbol instance plays the movie from the specified scene and frame.
    Instructions:
    1. Replace "Scene 3" with the name of the scene you would like play.
    2. Replace 1 with the frame number you would like the movie to play from in the specified scene.
    Tools_button.addEventListener(MouseEvent.CLICK, fl_ClickToGoToScene);
    function fl_ClickToGoToScene(event:MouseEvent):void
    MovieClip(this.root).gotoAndPlay(1, "Toolse");
    }/* Click to Go to Scene and Play
    Clicking on the specified symbol instance plays the movie from the specified scene and frame.
    Instructions:
    1. Replace "Scene 3" with the name of the scene you would like play.
    2. Replace 1 with the frame number you would like the movie to play from in the specified scene.
    games_button.addEventListener(MouseEvent.CLICK, fl_ClickToGoToGames);
    function fl_ClickToGoToGames(event:MouseEvent):void
    MovieClip(this.root).gotoAndPlay(1, "Gamese");
    }/* Click to Go to Scene and Play
    Clicking on the specified symbol instance plays the movie from the specified scene and frame.
    Instructions:
    1. Replace "Scene 3" with the name of the scene you would like play.
    2. Replace 1 with the frame number you would like the movie to play from in the specified scene.
    Identity_button.addEventListener(MouseEvent.CLICK, fl_ClickToGoToIdentity);
    function fl_ClickToGoToIdentity(event:MouseEvent):void
    MovieClip(this.root).gotoAndPlay(1, "Identitye");
    }/* Click to Go to Scene and Play
    Clicking on the specified symbol instance plays the movie from the specified scene and frame.
    Instructions:
    1. Replace "Scene 3" with the name of the scene you would like play.
    2. Replace 1 with the frame number you would like the movie to play from in the specified scene.
    Reviews_button.addEventListener(MouseEvent.CLICK, fl_ClickToGoToScene_13);
    function fl_ClickToGoToScene_13(event:MouseEvent):void
    MovieClip(this.root).gotoAndPlay(1, "Reviewse");
    }/* Click to Go to Scene and Play
    Clicking on the specified symbol instance plays the movie from the specified scene and frame.
    Instructions:
    1. Replace "Scene 3" with the name of the scene you would like play.
    2. Replace 1 with the frame number you would like the movie to play from in the specified scene.
    Facts_button.addEventListener(MouseEvent.CLICK, fl_ClickToGoToScene_20);
    function fl_ClickToGoToScene_20(event:MouseEvent):void
    MovieClip(this.root).gotoAndPlay(1, "Factse");

  • Duplicate function definition error on buttons

    Hi there!
    Ok first I'm a complete beginner when it comes to Flash so please bare with me.
    What I'm looking to do is create a banner that transitions between different photos while there are small square buttons on the side that when the user clicks on them, it jumps to the corrosponding frame where a new photo begins showing. I've seen it a bunch of times on other websites.
    After following the advice found here: http://forums.adobe.com/thread/781826?tstart=0
    Everything was going well until I hit a snag. When trying to preview my movie I got the following error:
    1021: Duplicate function definition
    Now, I know there is a very obvious error here in my button scripts, but as I said, I have no idea what I'm doing. Can someone look at my code and tell me what's wrong and what I should change? I'll post all five scripts.
    The instance names by the way are "sidebutton1" thru "sidebutton5" if that's any help.
    Here's my codes for each of the five buttons (one of these code bits per button):
    sidebutton1.addEventListener(MouseEvent.CLICK,f);
    function f(e:Event):void{
    gotoAndPlay(1);
    sidebutton2.addEventListener(MouseEvent.CLICK,f);
    function f(e:Event):void{
    gotoAndPlay(100);
    sidebutton3.addEventListener(MouseEvent.CLICK,f);
    function f(e:Event):void{
    gotoAndPlay(200);
    sidebutton4.addEventListener(MouseEvent.CLICK,f);
    function f(e:Event):void{
    gotoAndPlay(300);
    sidebutton5.addEventListener(MouseEvent.CLICK,f);
    function f(e:Event):void{
    gotoAndPlay(500);

    sidebutton2.addEventListener(MouseEvent.CLICK,f2);
    function f2(e:Event):void{
    gotoAndPlay(100);
    sidebutton3.addEventListener(MouseEvent.CLICK,f3);
    function f3(e:Event):void{
    gotoAndPlay(200);
    Each function must have a special name...

  • How to use dll function

    I have written a program which calls dll function from a dll in eclipse platform.But I am getting Unsatisfied Linker Error.How can I solve this problem?Can anyone help me out?

    Have a look at JNA:
    https://jna.dev.java.net/

Maybe you are looking for

  • Reporting tools and SAP BW

    Dear Sirs, We have Business Objects BI 4.0 and SAP BW 7.3. Actually we are using Web Intelligence and BEx Query to reporting. We have not Business Layer (Universe) between BW and BO because BO it's not supported to create universe (unx) on BW. So we

  • I've just bought Photoshop CC and the spacebar shortcut for the hand tool isn't working?

    I've googled solutions for the problem and most of them say that I need to close down the other programmes I have open, as well as photoshop, and then restart the programme so I tried this and nothing seems to work. The hand tool by itself works but

  • Infix to postfix printing out incorrectly sometimes..any ideas?

    alright, my program this time is to make an infix to postfix converter. I have it coded, and it works fine except when I use parenthesis. I'm supposed to test it with these expressions: a + b a * b + c a * ( b + c ) a + b * c - d ( a + b ) * ( c - d

  • Oracle service with two instances

    I have for some reason (maybe related to my experimenting with rman?) found myself with two instances running from the same service. I cannot conect now, as I get the ORA- 12560 TNS protocol adapter error. I checked lsnrctl and see this: Services Sum

  • Guest book with picture upload(php)

    Hi guys , i want to make a guest book with a picture upload system(php) , there are many sources guest book in internet but i cant find anything like this with picture upload.Guest can send their comments and they should upload their picture (like 50