No function parameter informatio​n when calling Borland C++ DLL

I have a DLL that I've created in Borland C++ 5.5 with the following code:
extern "C"
    void __declspec(dllexport) __stdcall myfun(int * a){*a = - *a; }
Now when I add this DLL using the C/C++ adapter to my sequence and call myfun(), I get the following message: "This function does not have parameter information in the DLL or uses types not recognized by TestStand."
I have also tried creating a similar DLL in MS VC++ but it worked fine. Unfortunately, I have to use Borland C++ because of some legacy code. I don't really know too much about the specifics of how MS VC++ creates DLLs vs Borland but I'd like to figure out how to create a DLL in Borland so that I don't get the error message anymore.

TestStand gets prototype info from visual studio dlls from the decorated name in the export table. extern "C" however generates an export without the C++ decorated name prototype information. So I'd recommend removing the 'extern "C"' and see if it works. If Borland generates visual C++ compatible decorated names then it should work.
Additionally, or if that does not work. You can create a type library in your dll that teststand can use to get the prototype information, however that would be more work and I'm not sure exactly how to do that with Borland C++.
-Doug

Similar Messages

  • Calling Borland C++ DLL

    want to call my borland c++ 5 or 6 generated DLL, is it possible ?
    any samples or steps I can follow ?
    thanks.

    Richard Zhu wrote:
    > want to call my borland c++ 5 or 6 generated DLL, is it possible ?
    >
    > any samples or steps I can follow ?
    There shouldn't be any specific problem with calling Borland compiled
    DLLs with the Call Library Node in LabVIEW, provided the DLL is
    installed properly with all necessary Borland runtime DLLs on the target
    system.
    As to examples check out the examples/dll directory in LabVIEW. DLLs are
    supposed to be a standard format and it should not make any difference
    if they are created with Visual Studio, Borland C or even gcc.
    Rolf Kalbermatter
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

  • How can i avoid a pop-up window when calling the avi.dll?

    Ok, here another try!
    My problem is as followed:
    My program calls the avi.dll to initialize, write into and close an
    avi-file.
    Now, when initializing it, a pop-up window is shown so you can choose the
    codec to use.
    My question is, can I pre-define the codec, so the pop-up window won't show
    up?
    The program is meant to write several files, some starting without the user
    having to control them, so the pop-up window really isn't helping.
    Any ideas?
    I attached the avi.dll in case you need it to look at the problem.
    Also helpful would be, if someone could tell me, how I can take a closer
    look at the structure of the dll. Is there a program I can do that with?
    Thanx!
    regar
    ds,
    Martin

    Hello Martin,
    I have used this DLL before and wasn't asked to choose a codec. Maybe if you use all three functions (init, write, close), it works without problems. Here's a example that uses IMAQ hardware to acquire an 8-bit image at 30fps and writes each image to an avi file.
    There are utilities to examine dlls (see what functions are exported and what the dependencies are, but you can't see source code since it is compiles.) Check out QuickView or DependencyWalker.
    Attachments:
    avigrab.zip ‏66 KB

  • FUNCTION NOT IMPLEMENTED error when calling C# method from SAP, why?

    Hi,
    I've build a server stub in order to get SAP calling my own methods that exist in the C# world, for that I developed several methods in a class that extends SAPServer and then implemented them...
    I added the special custom properties needed (Abap Name, length, etc) to the function and to its parameters, I've made the ABAP code required to call it...
    I've checked, every parameters that I place in ABAP (importing, exporting and tables) are also defined in C# (its 53 parameters) with the same name (in C# they are in capital letters and in a diferent order but I tried this before and it didn't matter)...
    The name of the function is the same...
    How can I get the 'FUNCTION NOT IMPLEMENT' error in SAP?
    What's going wrong when I get this error?
    Can anyone tell me?
    Is there any place in this site that has a error description and possible reasons?
    When I get a parameter wrong I get a different error (I tried to make smaller functions and they work fine).
    Thanks for the help,
    Nuno Felino
    Message was edited by: Nuno Felino

    Hi,
    I'll explain what I'm doing:
    - we have a set of services made in a C and VB that are available using an API in C#, these services must be available to SAP. So I have a program that will see what parameters the API service requires and makes a proxy so that SAP can call these services.
    To do this I must map SAP types with C#, build the function signature and then implement it. So I cannot use the wizard to do this
    Now, back to the question, what kind of customer attributes I got wrong to get that exception? The most logic is the AbapName of the function but they are equal (the one called in SAP and the one in the customer attributes of the function)...
    Thanks for the answer, can you give me any more hint?

  • Quit LabVIEW function doesn't work when called from Actor Framework

    This is related to a known bug. Details can be found in a discussion we had with LV R&D here: https://decibel.ni.com/content/docs/DOC-28012
    I need a functional workaround to this bug because my application's top-level panel is an Actor Core.vi override. Can the AEs please help, as suggested by Aristos_Queue (LV R&D member) in the link above?

    Hi David,
    Were you able to try the workaround AristosQueue gave you? Below is the workaround he suggested.
    Not sure, but I think that it will work just fine if you start a VI running using the Run VI method and have it invoke the Quit LabVIEW node. Not the Call By Reference node, but just wire a Static VI Reference to the Run VI method with FALSE wired to the terminal for whether to wait for it to finish. That subVI will then be running as a top-level VI on its own... and the only thing on its diagram would be the Quit LabVIEW node. I think that will work. Haven't tried it, but based on the description in the CAR, I think it will work.
    Carl W.
    Applications Engineering
    National Instruments

  • What function name to use when calling an XI RFC Sender adapter?

    Hello experts, I need some help please...
    We are trying to setup an RFC Sender adapter in XI 3.0 for the first time.  We followed Michal's <a href="/people/michal.krawczyk2/blog/2005/03/29/configuring-the-sender-rfc-adapter--step-by-step on how to setup the RFC destination in the sender system (ECC 5.0 in our case) and the corresponding communication channel in XI.  We can make a connection from ECC to XI via the destination, but we are getting an error in the communication channel monitor stating that the JCO.Server could not find the server function '<i>message interface name</i>'.   We have tried to use the message interface name, the message type name and the data type name, but all return the same error.  What function name should we be using and how does this name get registered with the JCO server?
    Message was edited by:
            Matt Austin

    hi
    Have you registered the pragram id properly in sender system ?
    Steps to that
    1. first create RFC sender adapter in XI and give any name as program id Give Gateway host n gateway service of appilcation system
    2. activate it properly
    3. program get regiostered on app system
    4. go to application system and create RFC destinationn there give the same program id name
    now it should work
    regards
    Sheetal

  • Memory leak and problem with polymorh vi when calling vi from dll

    Two problems appear for me when using the setup below.
    First, I have a vi for opening a secondary vi:
    Then I have a vi for calling the opened, secondary vi:
    These two are compiled to a dll. The first one is called once, calling a function "open(char *)". The second one is called over and over, calling a function nextevent(double *, int). A simple example of an opened, secondary vi looks like this:
    The code used to send data looks approximately like this:
    dataout = malloc(dx->numelems * sizeof(double));
    datain = (COMPLEX *) dx->cont;
    for (i = 0; i < dx->numelems; ++i)
        dataout[cnt][i] = sqrt(datain[i].re * datain[i].re + datain[i].im * datain[i].im);
    nextevent(dataout, dx->numelems);
    free(dataout);
    This code is called in a loop. dataout is a double array to be sent to the secondary vi, datain is the source data.
    The problem now is that there is something eating up memory, and I fail to see why.
    My second question is this:
     I want to insert a Hamming window, or some other form of windowing function. It doesn't work however, and the help tells me it is because a vi opened this way cannot contain any polymorphic vi. Is there a convenient way around this problem?
    Lars Melander
    Uppsala Database Laboratory, Uppsala University

    Regarding your second question:
    As you say not possible to use a polymorphic vi in a DLL and in your case it is the windowing VI that is polymorphic. What you can do is to use only one instance of the windowing VI in the short cut menu. 
    Here is a link to a report about this error in the knowledgeBase:
    http://digital.ni.com/public.nsf/allkb/755CE99505A1C9FF8625693C00508DDE?OpenDocument

  • Error when call RFC Function module in R/3

    Dear All,
    We are trying to call RFC function module CBIF_GLM1_PROCESS_ORDER_READ (This is not a BAPI and also not released ) in R/3 from XI system.
    we are facing the error "Error while lookup Exception during processing the payload. Error when calling an adapter by using the communication channel CC_PPPI_MES_RFC_Rcvr (Party: , Service: WCD_320, Object ID: 16563889b449328eac76caa6a3bc592e) XI AF API call failed. Module exception: 'error while processing the request to rfc-client: com.sap.aii.adapter.rfc.afcommunication.RfcAFWException: error while processing message to remote system:com.sap.aii.adapter.rfc.core.client.RfcClientException: failed to parse BAPI response due to: com.sap.aii.adapter.rfc.util.bapi.BapiException: Parameter with name RETURN not found.'. Cause Exception: 'com.sap.aii.adapter.rfc.afcommunication.RfcAFWException: error while processing message to remote system:com.sap.aii.adapter.rfc.core.client.RfcClientException: failed to parse BAPI response due to: com.sap.aii.adapter.rfc.util.bapi.BapiException: Parameter with name RETURN not found.'."
    This is the first time we are doing this configuration.
    Could you please let me know what woulbe the reason.

    read the original message
    We are trying to call RFC function module CBIF_GLM1_PROCESS_ORDER_READ (This is not a BAPI and also not released ) in R/3 from XI system.
    I am talking about the above Receiver RFC channel which you guys are using to call R/3 from XI. That where you need to change the commit parameter

  • 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

  • Error:Type conflict when calling a function module RFC_ERROR_SYSTEM_Failure

    Hi Experts,
    When I run my Application in Portal, i am getting the following error.
    Type conflict when calling a function module., error key: RFC_ERROR_SYSTEM_FAILURE
    When I execute the BAPI, it is getting executed.
    My Bapi Strucute:
    Import Parameters
    IM_MAT_Search --> ZPTIP_MAT --> Import Parameters
    Tables
    IT_INFO_REC --> ZMM_GET_ITEM --> Output Parameters
    When I import the model, i am getting the structure like this
    BAPI_Name > ZMM_BAPI_Input> IM_MAT_Search(respective Parameters) , Output (respective Tables and their parameters)
                        > ZMM_Input1> Parameters
    This is the way, how i am executing in webdynpro java
    Zmm_Bapi_Ptip_Search_Input eleInput = new Zmm_Bapi_Ptip_Search_Input();
    wdContext.nodeZmm_Bapi_Ptip_Search_Input().bind(eleInput);
    Zptip_Asset eleInputAsset = new Zptip_Asset();
    eleInputAsset.setSearch("ACRS");
    wdContext.nodeZptip_Asset().bind(eleInputAsset);
    eleInput.setIm_Ast_Search(eleInputAsset);
    wdContext.nodeZmm_Bapi_Ptip_Search_Input().bind(eleInput);
    wdContext.nodeZmm_Bapi_Ptip_Search_Input().currentZmm_Bapi_Ptip_Search_InputElement().modelObject().execute();
    wdContext.nodeOutput().invalidate();
    Please let me know, how to do the same.
    Thanks in advance.
    Regards,
    Palani

    Hi David,
    I checked for the Parameter of setIm_Ast_Search, it is of Zptip_Asset.
    Hi Saleem,
    When I changed the same, i am getting the Type conflict error,
    Type conflict when calling a function module., error key: RFC_ERROR_SYSTEM_FAILURE
    Please let me know,what can be done in this regard to solve the problem.
    My BAPI Structure when imported as model
    SearchBAPI
    --> ZMM_BAPI_SEARCH_INPUT
    > IM_AST_SEARCH(zPTIP_ASSET)
    >Zptip_Asset
    >Search (Parameter)
    > OutPut(ZMM_BAPI_Search_Output)
    >IT_Asser_Rec(ZMM_Asset)
    >ZMM_Asset
    >TXT100 (output Parameter)
    --> ZMM_BAPI_SEARACH_OUTPUT
    --> ZPTIP_ASSET
    >Search (Parameter)
    Thanks & Regards,
    Palani
    Edited by: Palani Appan on Nov 11, 2009 5:31 PM

  • Error BT616 when calling function module SXPG_COMMAND_EXECUTE in background

    Hi All,
    We use function module SXPG_COMMAND_EXECUTE with a custom command we defined in SM69 to move files in unix (mv command).
    The function module call has worked fine for almost a year and recently we have been seeing an error (BT616) in our job lob (SM37) when the program is run in background. We have not been able to reproduce the error in foreground mode and it seems to be occuring only periodically in the background. (The appropriate SAP authorization objects where assigned to the batch job ID and the steps on the batch job.) We are in the process of setting up the trace flag and performing analysis on the trace log via ST11 to help identify the issue.
    After perform analysis on SXPG_COMMAND_EXECUTE, the error is occurring when calling function module SAPXPG_END_XPG for exception 2, system failure, yet function module SAPXPG_END_XPG does not exist. I assume this is a program at the operating system level and is just a signature of the parameters to be passed to the operating system program.
    Below is part of the SAP function module SXPG_COMMAND_EXECUTE that is failing.
    * Now we have to wait for the termination of the external
    * command if the caller wants us to.
        IF TERMINATIONWAIT = 'X'.
          CALL FUNCTION 'SAPXPG_END_XPG'
            DESTINATION DESTINATION
            IMPORTING   EXITSTAT = STATUS
                        EXITCODE = EXITCODE
            TABLES      LOG      = LOG
            EXCEPTIONS  COMMUNICATION_FAILURE = 1 MESSAGE MSG
                        SYSTEM_FAILURE        = 2 MESSAGE MSG.
    I performed a where used on function module SXPG_COMMAND_EXECUTE, and most of SAP programs call the function module with the parameter TERMINATIONWAIT = 'X', so I assume we should pass ‘X’ as well.
    Any ideas on what could be causing this issue?
    Mike Vondran

    I also remember I have this kind of issue, as I have some UNIX script at OS( UNIX) level . The problem was with the ID , as it don’t have proper authorization at OS level ( UNIX ) . Please check this ID authorization. This could be the one of reasons if you’re sure from SAP standpoint.
    Hope this’ll give you some guide line..
    Thanks
    Bye

  • How to transfer range parameter from vb when using bapi calling

    Hi,everyone.how to transfer range parameter from vb when using BAPI calling?

    Did you get the solution to your problem?  Can you please share it with me. I have a similar problem. I have a VB program that calls RFC function. It works with a single parameter but not with a range of parameters. If you have the solution, could you please share sample codes with me? Thank you so much.

  • Error "Job already started" when calling a adobe form in Z function module

    Hi All,
    I have a error when calling a adobe form in a custom function module.
    I am using FP_FUNCTION_MODULE_NAME to get the adobe form function module and then i am using FP_JOB_OPEN function module to control the printing parameters such as no print preview or no dialog ..etc.. I dont have any exceptions during the call of FP_JOB_OPEN function module ..
    Later I am calling my function module which was generated for the adobe form and i am getting the error called " JOB ALREADY STARTED".
    I tried executing the same function module in se37 and the PDF form output was generated, and also by commenting FP_JOB_OPEN function module the PDF form output was generated.
    But i need the FP_JOB_OPEN function module to control the output based on the output type which triggers the form output such as the medium from nast record which says print or email or fax.. etc
    Please let me know how to handling this error.

    Just as a followup note. If you are testing a function module from SE37 and the test button you will get a value in SY-CPROG. You must override this value for everything to work.
    If you override the value of SY-CPROG with the main program that will be calling the function module you have no problem.
    John W.

  • Error while calling FM : Function parameter "PE_LFA1" is unknown

    Dear Experts,
    I am trying to call a FM in my code, but somehow I am getting the following error .Please help !
    My code is :
    DATA :  VENDOR_NO TYPE WSRS_SHVDST_RES-VENDOR_NO,
            PE_LFA2 TYPE LFA1,
            PE_ADDR2 TYPE BAPIADDR1,
            PE_ADRPRT2 TYPE WISO_ADRPRT,
            PE_RETURN2 TYPE WSRS_RETURN,
            PE_LFM2 TYPE LFM1,
            PE_LFB2 TYPE LFB1.
      DATA:
        node_vendor                         TYPE REF TO if_wd_context_node,
        elem_vendor                         TYPE REF TO if_wd_context_element,
        stru_vendor                         TYPE if_vendor_view=>element_vendor ,
        item_vendorinp                      LIKE stru_vendor-vendorinp.
    navigate from <CONTEXT> to <VENDOR> via lead selection
      node_vendor = wd_context->get_child_node( name = if_vendor_view=>wdctx_vendor ).
    get element via lead selection
      elem_vendor = node_vendor->get_element(  ).
    get single attribute
      elem_vendor->get_attribute(
        EXPORTING
          name =  `VENDORINP`
        IMPORTING
          value = item_vendorinp ).
    VENDOR_NO = item_vendorinp.
    CALL FUNCTION 'WSRS_O_VENDOR_GET_DETAIL'
    EXPORTING
    PE_LFA1 = PE_LFA2
    PE_ADDR1 = PE_ADDR2
    PE_ADRPRT = PE_ADRPRT2
    PE_RETURN =PE_RETURN2
    PE_LFM1 = PE_LFM2
    PE_LFB1 = PE_LFB2
    IMPORTING
    PI_VENDOR_NO = VENDOR_NO.
    My Error is :
    Note
    The following error text was processed in the system HE6 : Function parameter "PE_LFA1" is unknown.
    The error occurred on the application server hsdnt24s11_HE6_00 and in the work process 5 .
    The termination type was: RABAX_STATE
    The ABAP call stack was:
    Method: ONACTIONFETCH_VENDOR_DETAILS of program /1BCWDY/A8XPPCRFM5I0CTSGLFDT==CP
    Method: IF_WDR_VIEW_DELEGATE~WD_INVOKE_EVENT_HANDLER of program /1BCWDY/A8XPPCRFM5I0CTSGLFDT==CP
    Method: INVOKE_EVENTHANDLER of program CL_WDR_DELEGATING_VIEW========CP
    Method: IF_WDR_ACTION~FIRE of program CL_WDR_ACTION=================CP
    Method: DO_HANDLE_ACTION_EVENT of program CL_WDR_WINDOW_PHASE_MODEL=====CP
    Method: PROCESS_REQUEST of program CL_WDR_WINDOW_PHASE_MODEL=====CP
    Method: PROCESS_REQUEST of program CL_WDR_WINDOW=================CP
    Method: EXECUTE of program CL_WDR_MAIN_TASK==============CP
    Method: IF_HTTP_EXTENSION~HANDLE_REQUEST of program CL_WDR_MAIN_TASK==============CP
    Method: EXECUTE_REQUEST_FROM_MEMORY of program CL_HTTP_SERVER================CP
    Please help.

    Hi,
    I will ask this way, from where did you get list of parameters for this FM? Try using pattern to call this FM, than you will be proposed with correct interface.
    EDIT:
    After checking it in system you should switch IMPORTING and EXPORTING
    CALL FUNCTION 'WSRS_O_VENDOR_GET_DETAIL'
      EXPORTING
        PI_VENDOR_NO             = '99'
    *   PI_ACCEPT_NOTFOUND       =
    *   PI_PURCH_ORG             =
    *   PI_COMP_CODE             =
    IMPORTING
       PE_LFA1                  = lv
    *   PE_ADDR1                 =
    *   PE_ADRPRT                =
    *   PE_RETURN                =
    *   PE_LFM1                  =
    *   PE_LFB1                  =
    Best regards
    Marcin Cholewczuk
    Edited by: Marcin Cholewczuk on Apr 12, 2011 1:20 PM

  • Type conflict when calling a function module (field length)

    Dear All,
                I am getting this following error while executing:  Type conflict when calling a function module (field length)
    This is piece of coding i have writern in my action button.
    method SEARCH_MATERIAL .
      data:
            node_mat_input TYPE REF TO  if_wd_context_node,
            node_mat_output TYPE REF TO if_wd_context_node,
            material TYPE BAPIMATDET-MATERIAL,
            itab TYPE TABLE OF BAPIMATDOA.
      node_mat_input = wd_context->get_child_node( 'NODE_MAT_INPUT' ).
      node_mat_output = wd_context->get_child_node( 'NODE_MAT_OUTPUT' ).
      node_mat_input->get_attribute( EXPORTING name = 'MATERIAL'
                                     IMPORTING value = material ).
      CALL FUNCTION 'BAPI_MATERIAL_GET_DETAIL'
        EXPORTING
          material                    = material
        PLANT                       = plant
        VALUATIONAREA               =
        VALUATIONTYPE               =
        MATERIAL_EVG                =
       IMPORTING
         MATERIAL_GENERAL_DATA       = itab
        RETURN                      =
        MATERIALPLANTDATA           =
        MATERIALVALUATIONDATA       =
      node_mat_output->bind_table( itab ).
    endmethod.
    Attributes are:
    Node name = INPUT its structure is BAPIMATDET
    INPUT attributes = MATERIAL of type BAPIMATDET-MATERIAL
    Thanks,
    Gopi.

    Hi Amit,
               I have used service call to fetch records from that bapi..
    The following is the code generated by service call:-
    METHOD execute_bapi_material_get_deta .
    declarations for context navigation
      DATA:
        node_bapi_material_get_de   TYPE REF TO if_wd_context_node,
         node_exporting   TYPE REF TO if_wd_context_node,
         node_material_general_dat   TYPE REF TO if_wd_context_node,
         node_importing   TYPE REF TO if_wd_context_node,
          lri_element    TYPE REF TO if_wd_context_element.
    declarations for fuba parameters
      data:
        stru_c_material_general_dat    TYPE if_componentcontroller=>element_material_general_dat.
      DATA:
        attr_material    TYPE bapimatdet-material,
        attr_plant    TYPE bapimatall-plant.
    get all involved child nodes
      node_bapi_material_get_de = wd_context->get_child_node( `BAPI_MATERIAL_GET_DE` ).
      node_exporting = node_bapi_material_get_de->get_child_node( `EXPORTING` ).
      node_material_general_dat = node_exporting->get_child_node( `MATERIAL_GENERAL_DAT` ).
      node_importing = node_bapi_material_get_de->get_child_node( `IMPORTING` ).
    get input from context
      node_importing->get_attribute(    EXPORTING      name = `MATERIAL`
                                                         IMPORTING      value = attr_material ).
      node_importing->get_attribute(  EXPORTING       name = `PLANT`
                                                              IMPORTING       value = attr_plant ).
    the invocation - errors are always fatal !!!
      CALL FUNCTION 'BAPI_MATERIAL_GET_DETAIL'
        EXPORTING
          material =                        attr_material
          plant =                           attr_plant
    "      valuationarea =                   wd_This->Valuationarea
    "      valuationtype =                   wd_This->Valuationtype
    "      material_Evg =                    wd_This->Material_Evg
        IMPORTING
          material_general_data =           stru_c_material_general_dat
    "      return =                          wd_This->Return
    "      materialplantdata =               wd_This->Materialplantdata
    "      materialvaluationdata =           wd_This->Materialvaluationdat
      node_material_general_dat->bind_structure( stru_c_material_general_dat[] ).
    ENDMETHOD.
                                 but the problem is I  am getting the following error while compiling...
    " stru_c_materialplantdata " is not an internal table - the " OCCOURS n"  specification is missing.
    Thanks,
    Gopi.
    Edited by: Yegalaivan on Nov 18, 2009 8:30 AM

Maybe you are looking for