FRM-40734 when calling external DLL Function from Forms 6

Even though some answers were given to my previous help request ("Again: Forms 6 and user-defined data types") I wasn't able to solve the problem of passing a parameter of an user-defined type to an external DLL function residing in the SECURSIGN.DLL library (the closest solution was to declare that "composite" parameter using the ROWTYPE clause referencing a custom-made table created just for the sake of defining that perticular datatype).
So I concentrated on SECURSIGN.DLL functions using more trivial data types, like a function requiring just four character strings as parameters.
I generated the necessary PL/SQL support using the FFI.
I discovered that also the simplest calls to external functions fail at runtime with the generic error FRM-40734.
I located the error: it happens just at the moment of calling the function from within the FFI-generated package body. Before that, the DLL is loaded with no problem, the function is correctly registered, and a function handle is regularly returned.
As long as I can regularly issue the very same call with the very same parameters from Visual Basic, I can't understand what's going wrong (ALL the needed DLL are in the same directory as the FMB/FMX forms).
I will greatly appreciate any help that You may be able to provide.

I have noticed just now that a dump file having a name like ifrun60_dump_299, is generated by FORMS every time I issue the aborted call to the foreign function.
Inside the form dump file, apart from useless info like Registers and so on, the message:
"Could not find Module32First"
By a FILE/FIND/CONTAINING TEXT I searched all the DLLs, and I noticed that Module32First is a routine that can be found within each of the following DLLs:
Cl32
d2kwut32
d2kwut60
I tried to load those DLLs along with SECURSIGN.DLL by modifying the PROCEDURE LoadLibrary into the FFI-generated PLL code, and I have apparently no problem in loading all the DLLs that I wish, but the error persists, and that dump file is constantly generated, always looking for the "Module32First" routine.
How can I avoid all that mess and the FRM-40734 error??

Similar Messages

  • FRM-40734 when calling a foreign function requiring more than 1 dll

    I have been experiencing difficulties in calling external DLL functions from SECURSIGN.DLL. This time no peculiar type of parameter is involved, just four varchar2.
    A dump file "ifrun60_dump_nnn" is generated by FORMS every time I issue the aborted call to the foreign function.
    Inside the form dump file, apart from useless info like Registers and so on, the message: "Could not find Module32First"
    I know for sure that SECURSIGN.DLL needs also other DLLs, and that the first foreign function I call, calls other functions in other DLLs. I found that Module32First is a routine within each of the following DLLs:
    Cl32
    d2kwut32
    d2kwut60
    I copied all those DLLs in the current work directory along with my FMB/FMX, in ORANT\BIN, in C:\WINNT\SYSTEM.
    I modified the PROCEDURE LoadLibrary (part of the FFI-generated PLL code) to load those DLLs along with SECURSIGN.DLL: no problem in loading all the DLLs that I wish, but the error persists.
    How can I avoid all that mess and the FRM-40734 error?? Is there a specific problem in resolving the references to other DLLs?
    Please notice that - on the same computer - in Visual Basic everything (and the very same call in particular) works perfectly.

    I have noticed just now that a dump file having a name like ifrun60_dump_299, is generated by FORMS every time I issue the aborted call to the foreign function.
    Inside the form dump file, apart from useless info like Registers and so on, the message:
    "Could not find Module32First"
    By a FILE/FIND/CONTAINING TEXT I searched all the DLLs, and I noticed that Module32First is a routine that can be found within each of the following DLLs:
    Cl32
    d2kwut32
    d2kwut60
    I tried to load those DLLs along with SECURSIGN.DLL by modifying the PROCEDURE LoadLibrary into the FFI-generated PLL code, and I have apparently no problem in loading all the DLLs that I wish, but the error persists, and that dump file is constantly generated, always looking for the "Module32First" routine.
    How can I avoid all that mess and the FRM-40734 error??

  • Error when calling  external  DLL  function.

    When calling a function in Oracle, the error happens
    ORA-28575: '... error RPC connection to external procedures'
    code:
    create or replace library LibFunctions as 'c:\MyDLL.dll';
    grant all PRIVILEGES on LibFunctions to public;
    create or replace
    FUNCTION Max(num1 in number, num2 in number) RETURN number IS
    EXTERNAL LIBRARY LibFunctions
    NAME "Max"
    LANGUAGE C;
    grant all PRIVILEGES on Max to public;
    obs. Dll was created in Pascal.
    What can this error?
    tks,
    Mauricio
    Edited by: user13794390 on 19/01/2011 06:29

    It's been a while since I used extproc. Anyway, it listener.ora make sure extproc is added. I'll assume you are on Unix:
    (SID_DESC =
    (SID_NAME = PLSExtProc)
    (ENVS = "EXTPROC_DLLS=ANY,LD_LIBRARY_PATH=proper-directory-list")
    (ORACLE_HOME = path-to-oracle-home)
    (PROGRAM = extproc)
    ) SY.

  • 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.

  • 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 external (DLL) functions

    Hi everybody!
    I know this might be a special question, but i didnt find any
    solutions (whycih i could understand) to my problem:
    Is there any way to call functions from a (in C++ written)
    DLL, or any other way to get access to C++ functions?
    This would really help me, because i'd like to use Flash to
    create desktop applications, and use C++ for system integration.
    All sujestions are welcome!

    The third party tools "wrap" or 'host' the activex control
    and provide an extended api - think of them as a much enhanced
    version of the standard flash projector, which is pretty limited. I
    just know what's possible I can't speak from experience - but I
    know others here on the forums have used them.
    There is an open source type of implementation called haxe or
    screenweaver.. or something like that... but I don't know if it
    will do what you want.
    I know Zinc will because I did a quick search and it said so
    - so I guess it should! Other names that spring to mind are Jugglor
    and Swf Studio. I haven't checked these out to see if they can use
    external libraries.

  • Input parameter setting when calling a DLL(Built from LabVIEW and a kind of VISA communication driver) in Teststand.

    In labVIEW7.1 I wrote a COM port communications driver by using "VISA Write/Read". I put a string as the input of "VISA Write" and made it the input of the whole vi. Then I converted the vi into a DLL, which is called in Teststand3.1 by specifying DLL adapter. In "Edit C/C++ DLL Call" dialog, I pass a message of "60 6A 94 80 86 81" as the input parameter. My problem is I tried three kinds of methods to pass the message, see attached 1.jpg,2.jpg and 3.jpg. and found the first one sometimes doesn't work, the second work fine and the last doesn't work all time. I don't know why the first one and last one don't work well.
    Thanks!
    Jacky
    Attachments:
    31.jpg ‏38 KB
    11.jpg ‏36 KB
    21.jpg ‏49 KB

    Hi Srinivas,
    Just another note, I noticed that the Math Interface Toolkit version (MIT) 1.0 is not compatible with LabVIEW 7.1. You’ll need version 1.0.1. of the MIT toolkit in order for it to work with LabVIEW 7.1.
    The LabVIEW 7.0 lvanlys.dll is also attached. I had to rename it with a .txt extension, so you’ll want to delete the extension.
    Kileen
    Attachments:
    lvanlys.dll.txt ‏516 KB

  • Can Ora_ffi call ActiveX DLL function???

    Hi, Can I call an ActiveX DLL function using ora_ffi or by any other means? Ora_ffi documentation says that it can call C dll functions.Can I call VB dll functions from forms PL/SQL.

    Hi, I don't have any experience in calling DLLs, but you may want to give this a try.
    report zrich_0001.
    data: path type string.
    path = 'C:WINDOWS<the_file_Name>.dll'.
    call method cl_gui_frontend_services=>execute
       exporting
         application            = path
      exceptions
        cntl_error             = 1
        error_no_gui           = 2
        bad_parameter          = 3
        file_not_found         = 4
        path_not_found         = 5
        file_extension_unknown = 6
        error_execute_failed   = 7
        others                 = 8.
    Regards
    Rich Heilman

  • Calling an external C function from a C file in JNI

    Hello,
    I am trying to call an external C function, from a C file which is being called by a Java file. I am getting an unresolved symbol error. I have tried many things like, making the external C function in the format of JNI, etc, etc. It is still not working. I think it has something to do with linking the two C files. If anyone can please answer this, it would greatly help me. here is the code:
    HelloWorld.c:
    #include <jni.h>
    #include <stdio.h>
    #include "MyOldHello.h"
    #include "HelloWorld.h"
    JNIEXPORT void JNICALL
    Java_HelloWorld_print(JNIEnv *env, jobject obj)
         helloPrint();
         return;
    HelloWorld.java:
    class HelloWorld
         private native void print();
         public static void main(String[] args)
              new HelloWorld().print();
         static
              System.loadLibrary("HelloWorld");
              System.loadLibrary("MyOldHello");
    MyOldHello.c:
    #include <jni.h>
    #include <stdio.h>
    #include "MyOldHello.h"
    void helloPrint()
         printf("\nHello World!\n");
    MyOldHello.h:
    void helloPrint();
    Now i use the Visual C++ command prompt to compile this by saying:
    javac HelloWorld.java
    javah -jni HelloWorld
    cl -Ic:\Java\jdk1.6.0_20\include -Ic:\Java\jdk1.6.0_20\include\win32 -MD -LD HelloWorld.c -FeHelloWorld.dll
    and now it gives me the error saying that there is an unresolved external symbol, which is the call to helloPrint in the file HelloWorld.
    If anyone knows how to solve this, or how to call external C functions from a C file that is being called from a Java file using JNI, please respond.
    Thanks
    Nick

    Hi,
    In your post on velocity review, you did not compile MyOldHello.c. You compiled a C file that included the header file for it and called a method defined in the header. The linker is never going to be able to find the code for this if you do not include the object file for this.
    Try this. You will also have to add in any JNI libraries you need to link against but I am sure you could work that out.
    cl /c MyOldHello.c
    cl /c -Ic:\Java\jdk1.6.0_20\include -Ic:\Java\jdk1.6.0_20\include\win32 -MD HelloWorld.c
    cl /LD MyOldHello.obj HelloWorld.obj /FeHelloWorld.dll
    [http://msdn.microsoft.com/en-us/library/f35ctcxw(VS.80).aspx]
    Cheers,
    Shane

  • External call to DLL function

    Hi Experts,
    can anyone tell me the best way to call a dll function from within ABAP?
    Thanks,
    Jennifer

    Hi, I don't have any experience in calling DLLs, but you may want to give this a try.
    report zrich_0001.
    data: path type string.
    path = 'C:WINDOWS<the_file_Name>.dll'.
    call method cl_gui_frontend_services=>execute
       exporting
         application            = path
      exceptions
        cntl_error             = 1
        error_no_gui           = 2
        bad_parameter          = 3
        file_not_found         = 4
        path_not_found         = 5
        file_extension_unknown = 6
        error_execute_failed   = 7
        others                 = 8.
    Regards
    Rich Heilman

  • How to call external Java code from Animate project?

    I am creating a trainer using Animate that needs to interface with an aircraft model written in Java.  Is there a way to call external Java functions from Animate?
    Thanks!

    you can import external java files by yepnope
    yepnope({nope:[
                                  'your java script file address.js',
                             ],complete: init});
    function init() {
    codes that work with your js file can be write in here
    Zaxist

  • Call External C++ function and pass XML

    Hi,
    I need to call external C++ function from Oracle and pass to it XML file from Oracle table? Can you give short guide how to do it?
    Regards

    Your question sounds like is about using an Oracle database (or other application), and not about C++ programming or the using the C++ compiler. You are more likely to find a helpful answer in an Oracle database (or other application) forum.

  • Getting   FRM-41029   when calling report from form

    Hi
    I have following procedure to run the report but its running fine but giving error FRM-41029 when calling the report from the form.
    runrep('MATREP,'REPSER','PDF','F:\rec\RepEnt.RDF');
    Repid := FIND_REPORT_OBJECT(repobj);
    SET_REPORT_OBJECT_PROPERTY(repid,REPORT_EXECUTION_MODE, RUNTIME);
    set_report_object_property(repid, REPORT_SERVER, repserv);
    set_report_object_property(repid, REPORT_COMM_MODE, SYNCHRONOUS);
    set_report_object_property(repid, REPORT_DESTYPE,'file');
    set_report_object_property(repid, REPORT_DESFORMAT,repfor);
    set_report_object_property(repid, REPORT_FILENAME,repfile);
    rgds
    soumya

    hi
    try something like this.
    PROCEDURE sarah ( p_report_name varchar2, vParamValue number ) is
    l_param_list  paramlist;
    l_rep_id      report_object;
    l_rep_job     varchar2(100);
    l_rep_status  varchar(100);
    BEGIN
    l_param_list := Get_parameter_List('tmp');
    IF NOT Id_Null(l_param_list ) THEN
    Destroy_parameter_List( l_param_list );
    END IF;
    l_param_list := Create_parameter_List('tmp');
    add_parameter(l_param_list ,'p_num',text_parameter,to_char( vParamValue ));
    l_rep_id := FIND_REPORT_OBJECT( p_report_name );
    if
         id_null ( l_rep_id )
    then
      msg ( 'There is no Report ' || p_report_name || ' in form ' || name_in ( 'system.current_form' ) );
      raise form_trigger_failure;
    end if;
    SET_REPORT_OBJECT_PROPERTY(l_rep_id, REPORT_COMM_MODE,SYNCHRONOUS);
    SET_REPORT_OBJECT_PROPERTY(l_rep_id, REPORT_DESTYPE,cache);
    SET_REPORT_OBJECT_PROPERTY(l_rep_id, REPORT_DESFORMAT,'PDF');
    SET_REPORT_OBJECT_PROPERTY(l_rep_id, REPORT_OTHER, 'paramform=no');
    l_rep_job := RUN_REPORT_OBJECT( l_rep_id, l_param_list );
    l_rep_status := REPORT_OBJECT_STATUS( l_rep_job );
    WHILE l_rep_status in ('RUNNING','OPENING_REPORT','ENQUEUED')
    LOOP
    l_rep_status := report_object_status( l_rep_job );
    END LOOP;
    WEB.SHOW_DOCUMENT('http://sarah:8889/reports/rwservlet/getjobid'||substr(l_rep_job,instr(l_rep_job,'_',-1)+1) || '?server=repserver', '_blank');
    END; then u may call the procedure something like this.
    when-button-pressed trigger.
    begin
    sarah ('REPORT6', :block.item );
    end;sarah
    Edited by: S@R@h on Nov 30, 2009 9:39 PM

  • Call DLL function from JAVA

    HI!
    What's the best way (and simple) to call DLL function from JAVA.
    DLL function (developed in C) has two input parameters (string) and return an integer.
    Could you help with an example?
    Thanks a lot.

    Do a google search for 'JNI tutorial' and it will turn up hundreds of examples.

  • Slow response when calling a web service from an ADF client in JDev 11g

    I have generated a web service (WS) for a stored procedure package with 3 functions. The WS has less than 1 second response times when I use the standard WS testing facility. I then created a data control for the WS selecting the default values in the JDev wizard. When I test the functions from a very basic ADF client the response times for the same functions are between 3-4 seconds i.e. very SLOW compared to the actual response time of WS. I need some advice on how to investigate this performance degredation as seen from the ADF client.
    Could the problem be that the data control was created from a web service in the same project? Maybe it is necessary to have them in separate projects or create a proxy?
    I created and tested the web service with the standard WS test tool and then simply went on to create a data control from this web service for use from a ADF client.
    Some background info:
    I saw the following warning in step 8 of the WS creation wizard:
    "The configured policy store location at "C:\Oracle\Middleware\jdeveloper\j2ee\home\gmds" is invalid. Application cannot read policies from this location. Check that the directory name is correct and the location exists."
    Also I can confirm that there is no j2ee directory in my environment.
    The application server logs the following for each call from the ADF client:
    009-apr-01 15:55:22 oracle.adf.model.connection.webservice.impl.WebServiceConnectionMessages debugGetSaajInteraction
    INFO: Creating a SaajInteraction for oracle.j2ee.ws.model.OperationImpl@1c81d2c
    2009-apr-01 15:55:22 oracle.adf.model.connection.webservice.impl.WebServiceConnectionMessages debugGetSaajInteractionResult
    INFO: Created [email protected]79edc for oracle.j2ee.ws.model.OperationImpl@1c81d2c
    2009-apr-01 15:55:22 oracle.j2ee.ws.rm.LogMessages logExceptionAsWarning
    VARNING: Internal error: oracle.wsm.policy.model.PolicyModelException: WSM-01647 : There are no policies that match the specified category wsrm and resource pattern {1}.
    2009-apr-01 15:55:22 oracle.fabric.common.AbstractSecurityInterceptor init
    INFO: AbstractSecurityInterceptor:init(), client.mode.jse==ture and isJEE==true, probably is a case of JEE client calling JSE client
    2009-apr-01 15:55:22 oracle.wsm.agent.WSMAgent init
    INFO: WSMAgent is initialized for category=management, function=agent.function.client, topologyNodePath=null, isJ2EE=true
    2009-apr-01 15:55:22 oracle.fabric.common.AbstractSecurityInterceptor init
    INFO: AbstractSecurityInterceptor:init(), client.mode.jse==ture and isJEE==true, probably is a case of JEE client calling JSE client
    2009-apr-01 15:55:22 oracle.wsm.agent.WSMAgent init
    INFO: WSMAgent is initialized for category=security, function=agent.function.client, topologyNodePath=null, isJ2EE=true
    2009-apr-01 15:55:24 oracle.wsm.common.logging.WsmMessageLogger logSevere
    ALLVARLIG: error in the Oracle WSM Policy Resolver Initialization, because incorrect configuration is passed: {0} {1}
    Edited by: user10601664 on Apr 8, 2009 7:11 AM

    Find solution. Check this thread:
    https://www.sdn.sap.com/irj/sdn/wiki?path=/display/wdjava/faq%2b-%2bmodels%2b-%2badaptive%2bweb%2bservice
    The com.sap.tc.webdynpro.model.webservice.api.IWDWSInvocationModifier interface can be implemented by an application using the Adaptive Web Service model in order to modify the web service invocation object just before it's execution. Invocation modifiers need to be registered with the executable model class for which invocation is to be modified:
    Request_NumberToWords requestMO = new Request_NumberToWords(model);
    requestMO.wdSetInvocationModifier(
      new IWDWSInvocationModifier() {
        public void doModifyInvocation(Object port) {
          HTTPControlInterface httpItf = HTTPControlFactory.getInterface(port);
          //timeout for this WS invocation is 120 sec; don't use global config. setting of WS-Runtime
          httpItf.setSocketTimeout(120000);
        public void doModifyAfterInvocation() {}
    Best regards.

Maybe you are looking for