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:29It'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 EngineerYou 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
JFHello,
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. -
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 KBHi 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
NickHi,
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 -
Hi Experts,
can anyone tell me the best way to call a dll function from within ABAP?
Thanks,
JenniferHi, 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?
RegardsYour 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
soumyahi
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 -
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 AMFind 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
-
I can't get home sharing to work on one of our computers
I am trying to transfer my boyfriends library to my itunes and can not make it work. We are both on the same version of itunes and window computers. When we both log in and turn on share, my library shows on his computer and I can transfer stuff from
-
My ipod died at the same time as the external Lacie HD w/ itunes library...
I have a 30GB video iPod that is just over a year old (barely out of warranty with no applecare!), and I haven't had any trouble with it until about a week ago. I believe it was right after I downloaded the update for my itunes and/ or ipod updating
-
Hot to get the lowest price in query designer
Hi All, I hav eto develop a report for vendor evaluation. fields are like this: Vendor, Average price,total supply,rejected, accepted, price rating, quality rating. Formula for price rating is :Price Rating = If Price of a Vendor for a material is
-
I have a document made up of separate PDF files which reside in a folder and are linked to each other via hyperlinks. Each pdf file is set to open with bookmarks displayed, however if I link from one PDF file to another and use the "Previous View" bu
-
Hello Abapers, I am not getting the desired output as per example. I have followed all the steps as per the example but still a looser can anyone help me in this. When I execute the program I get the following run time error Field symbol has not been