Calling native dll, where to put it in JDev project ?

After many attempts to call native DLL (via JNI) from java (I always ended with java.lang.UnsatisfiedLinkError), I found out that classloader (System.loadLibrary("mydll"))ignores all class path settings in JDeveloper project. My only success was when I put created dll somewhere into system PATH. I thought, that putting it in Class directory will do. It didn't. Is it normal behavior?

Opps sorry guys,
We did indeed using windows environment variables since it's not something that bad since we only set this once in the local machine.
If you're using swing for your standalone apps in your machine, just add the path in the user/system environment variables. That should do the trick, if it doesn't , I will asked the developer specifically but I believe that's what we changed it to.
Message was edited by:
putera79

Similar Messages

  • Calling 32-bit native DLL hosted on Azure

    I am looking for guidance on how to call 32-bit native DLL through WCF service hosted on Azure. I've been unable to find a tutorial but the path appears to be...
    * Register DLL using Startup task
    * Write WCF service hosted in Azure
    * Enable 32-bit for the application pool
    * Add reference to 32-bit COM server to my WCF service
    * In my WCF service, create instance of server and call method
    Am I on the wrong track or am I missing anything?
    Would it be possible/easier to use PInvoke to avoid having to register COM server?  I'm not sure how to reference the DLL for PInvoke DLLImport statement.

    Hi,
    There was an blog detailed how to use 32bit Native DLL in Windows Azure,  in this blog, the author demonstrated how to use a 32bit dll in the Cloud by means of hosting it under a 32bit process and then use WCF communication to do the
    marshaling.
    #blog link:
    http://blogs.msdn.com/b/haniatassi/archive/2009/03/20/using-a-32bit-dll-in-the-windows-azure.aspx
    Hope this helps
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • Where to put AntiXssLibrary.dll file after installation of BPC Server

    Hi Experts,
         In the installation of BPC, that is after the installation of BPC Servers there comes another step "Installing the Anti-Cross Site Scripting Library"....The document tells us to download "AntiXssLibraryV1.5Installer.msi" and run the setup. Once it gets done the final step says "Copy AntiXssLibrary.dll to %BPC_PROGRAM%\Websrvr\Web\bin on both the BPC Application server and the BPC Web server." I can't understand where i should paste the file on Application Server and I could paste it in "C:\BPC\WebSvr\Web\Bin" what is the other location I should put the file.
    I am installing BPC on single server...Please help me out...
    Thanks
    Sudhakar Kuricheti

    Hello,
    Please use the follow link
    http://www.microsoft.com/downloads/details.aspx?FamilyId=EFB9C819-53FF-4F82-BFAF-E11625130C25&displaylang=en
    to download an installation kit for Microsoft Anti-Cross Site Scripting Library.
    In this way you will not have any more the problem where to put a dll and what you have to do with it.
    This program should be used into application server it is not necessary to put it into db server.
    If you have problem regarding unzip of dimensions then you have to check if you have into client side into C:\Program Files\BPC the dll xceedzip.dll and you have to check if this was correct register. (using regsvr32).
    I hope this help to understand what is that dll and what you have to do to complete the installation of SAP BPC server.
    Regards
    Sorin Radulescu

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

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

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

  • Calling native libraries from OC4J (howto config)

    Hello folks,
    I need your help. I am trying to set up OC4J so that I can call native libraries from my servlet. Could you point me to the respective documentation or give a hint on how to configure OC4J for this? Thank you.
    GKK

    gday GKK --
    I don't have an example, so I'm working from memory here and assuming you are using OC4J standalone.
    There's two aspects which need to be considered:
    1: the Java wrapper classes you have which call out to the native libary.
    2: the native libs themselves (which I'll call a .dll from hereon in for simplicity).
    What you would need to do is make sure the Java wrapper classes are all available to the web application. This can be done by either packaging them in a jar file and putting it into the web-inf/lib directory of your web application, or leaving them in an unpackaged form and putting it into the web-inf/classes directory.
    I do vaguely remember helping someone debug a JSP tag lib issue once before which used native code and we ran into some problems with concurrent use of the same DLL (a Java restriction) because a DLL can only be registered once per JVM instance and the threading model meant it was being loaded more than once -- but it may have also had something to do with the JSP taglib cache.
    If you do get some form of Java runtime exception showing concurrent access error for the native lib, what you can do is move the lib with the Java wrapper classes into the global classpath (j2ee/home/applib) meaning it's only ever loaded once..
    Then what you need to do is make sure the DLL itself is accessible to the Java process -- on Windows this is done by making sure directory holding the DDL is set in the PATH environment variable before -- before starting OC4J. On other platforms, it can be done using the LD_LIBRARY_PATH environment variable.
    That should be all you need to do to make it work.
    cheers
    -steve-

  • Cannot get bitmap from native DLL from multi threaded Java app.

    I have a native DLL that gives me a HBITMAP (Windows handle to bitmap). I have made a JNI wrapper for this that gives me a BufferedImage back. The native code simple gets the actual bitmap for the handle, converts the RGB byte triplets to RGB ints, puts this in a jintArray and creates a BufferedImage.
    This all works fine within a single Java thread. If I do this multi threaded (thread 1 calls the native function and several seconds later, thread 2 calls the native function) I keep getting the last image of the first thread. Can enyone help me out?
    I know that this is probably a question for MSDN but I just know that they will tell me its a JNI question.
    The native code:
    JNIEXPORT jobject JNICALL Java_somenamespace_getPicture
    (JNIEnv *env, jclass cl, jstring serialNumber)
    jobject jImage;
    jclass jImageClass;
    jmethodID jMethod;
    jfieldID jField;
    jintArray rgbArray;
    char *str;
    char *charArray;
    int *intArray;
    int w, h, index, type;
    HBITMAP hbmp;
    BITMAP bmp;
    str = (char*)((*env)->GetStringUTFChars(env, serialNumber, NULL));
    // Gets the HBITMAP handle from the native DLL. The first argument is to select the device, based on serial number.
    getPicture(str, &hbmp);
    (*env)->ReleaseStringUTFChars(env, serialNumber, str);
    // Get the BITMAP for the HBITMAP
    GetObject(hbmp, sizeof(BITMAP), &bmp);
    // Create my BufferedImage
    jImageClass = (*env)->FindClass(env, "java/awt/image/BufferedImage");
    jMethod = (*env)->GetMethodID(env, jImageClass, "<init>", "(III)V");
    jField = (*env)->GetStaticFieldID(env, jImageClass, "TYPE_INT_RGB", "I");
    type = (*env)->GetStaticIntField(env, jImageClass, jField);
    jImage = (*env)->NewObject(env, jImageClass, jMethod, bmp.bmWidth, bmp.bmHeight, type);
    // Get the RGB byte triplets of the BITMAP
    charArray = (char *)malloc(sizeof(char) * bmp.bmHeight * bmp.bmWidth * 3);
    GetBitmapBits(hbmp, sizeof(char) * bmp.bmHeight * bmp.bmWidth * 3, charArray);
    // Allocate space to store the RGB ints and convert the RGB byte triplets to RGB ints
    intArray = (int *)malloc(sizeof(int) * bmp.bmHeight * bmp.bmWidth);
    index = 0;
    for (h = 0; h < bmp.bmHeight; ++h)
    for (w = 0; w < bmp.bmWidth; ++w)
    int b = *(charArray + index * 3) & 0xFF;
    int g = *(charArray + index * 3 + 1) & 0xFF;
    int r = *(charArray + index * 3 + 2) & 0xFF;
    *(intArray + index) = 0xFF000000 | (r << 16) | (g << 8) | b;
    ++index;
    // Create a jintArray for the C RGB ints
    rgbArray = (*env)->NewIntArray(env, bmp.bmHeight * bmp.bmWidth);
    (*env)->SetIntArrayRegion(env, rgbArray, 0, bmp.bmHeight * bmp.bmWidth, (jint*)intArray);
    // Use BufferedImage.setRGB() to fill the image
    jMethod = (*env)->GetMethodID(env, jImageClass, "setRGB", "(IIII[III)V");
    (*env)->CallVoidMethod(env, jImage, jMethod,
    0, // int startX
    0, // int startY
    bmp.bmWidth, // int width
    bmp.bmHeight, // int height
    rgbArray, // int[] rgbArray
    0, // int offset
    bmp.bmWidth); // int scansize
    // Free stuff
    (*env)->DeleteLocalRef(env, rgbArray);
    free(charArray);
    free(intArray);
    return jImage;
    }I already tried working with native HDCs (GetDC, CreateCompatibleBitmap, SelectObject, GetDIBits, ...) but this just complicates stuff and gives me the same result.

    Have you verified what the "native DLL" gives you back on the second call?The HBITMAP handle returned is the same each call (no matter which thread). The actual BITMAP associated with this handle is only updated in the first thread.
    How are you determining that the image is the same?If I point the camera (I don't get a stream, I just get individual images) to a moving scene, I get different images for each call from within the first thread. The second thread only gets the latest image from the first thread. There is no concurrency of the threads and all methods are synchronized.
    Specifically did you verify that the problem is not that your test code itself is using the same instance?Yes, I tested the native side as well as the Java side. The BufferedImage is always an exact copy of the native BITMAP.
    Try printing out the hash for each instance.I have written the image to a file in the native code itself to eliminate anything related to the mechanism of returning the BufferedImage. This had the same result.
    The return values of all native calls all indicate successful calls.
    I am suspecting the native side of creating a second graphical context for the second thread while it keeps refering to the first context.
    (I will start a thread on the MSDN as well and will post here if anything turns up.)

  • Error while calling a DLL

    Hello Everyone,
    I have made a dll and calling that dll in LabVIEW.
    When I select a functioni n that dll, in the window where we get the Function Prototype, I am getting some unusal charcters like "?", "@@YAHXZ"  "void ?FindNodesNm@@YAHXZ(void);"
    In the above dll FindNodesNM is a function which i am trying to call
    Can anyone tell me why this is so?
    Thanks in advance
    Avni

    If I remember correctly I think this has to do with the way you're exporting the symbols for your functions. I did a quick check in the NI KnowledgeBase and came up with this article, which discusses extra symbols in function names if you don't use extern "C" when definining the symbols to export.

  • Forms 6.0/user_exit call to DLL--Thoughts anyone?

    I have 6.0 Forms that call to DLL functions where the DLL was built using MS VC++ 5.0--works fine.
    Upgraded to MS VC++ 6.0 and rebuilt DLL (no code changes). Pointed FORMS60_USEREXITS registry to new DLL but now get the following message when trying to call any functions from the new DLL:
    FRM-40800 User exit <somename> does not exist.
    Anyone?
    TIA

    It has been a while since I fixed this problem, but I think you have to run FRM50SEC.sql and then grant select on the FRM50_ENABLED_ROLES view to your target audience.
    Try This...
    create or replace view FRM50_ENABLED_ROLES as
    select urp.granted_role role,
    sum(distinct decode(rrp.granted_role,
    'ORAFORMS$OSC',2,
    'ORAFORMS$BGM',4,
    'ORAFORMS$DBG',1,0)) flag
    from sys.user_role_privs urp, role_role_privs rrp
    where urp.granted_role = rrp.role (+)
    and urp.granted_role not like 'ORAFORMS$%'
    group by urp.granted_role;
    create public synonym FRM50_ENABLED_ROLES for system.FRM50_ENABLED_ROLES;
    create role ORAFORMS$OSC;
    create role ORAFORMS$DBG;
    create role ORAFORMS$BGM;
    -- Added
    grant select on frm50_enabled_roles to public;
    null

  • My computer screen keeps going blank and then going back to the box where I put my password in to start my comp. Why is this happening?

    My computer (Macbook) was working fine this am. I left it for an hour and then came back and the screen was black (always does that as the screensaver hardly ever works). I moved the mouse to wake it up and everything was normal. I went to adjust the volume and the screen went blank and the main page with the box where I put my password in when I first start my comp appeared. I put my password in and everything was normal again. I opened a window in Safari and before it loaded completely the same thing happened, the screen went blank and went back to the password box. Does anyone know why this is happening? I don't have an external hard drive or any blank flash drives so I can't back anything up right now and am afraid I'm going to lose everything. Thank you

    Sounds like hardware failure, called boot loop. Call Apple and or go on apple.com and make Genius Bar appointment to have your iphone reviewed by a Tech. Provided you iphone shows no physical or liquid damage they will take care of you, or if you have Apple Care Plus
    Genius Bar Rerservation :  http://www.apple.com/retail/geniusbar/

  • Can LabVIEW call a DLL built with VS(2005) C++ with /CLR and Without an Entry Point

    My project requires me to convert a C++ program to a DLL and having it called by LabVIEW. Due to the complexity of this C++ program (converted from fortran using f2c -C++ option), it cannot be compiled without using /clr option.  I did build the application standalone (/clr), and it functioned fine.  When I build it into DLL using VS2005, I was forced to use No Entry point option and without using DllMain in the C++ code. Eventually the DLL was built without error.  But after I call it from LabVIEW, I was not getting calculated results as expected.  I added a testing function to the C++ code of the DLL and just try to modify a parameter, it will not, but only return the input numbers.  I was passing data by pointer and not by value, so I expect this parameter output be modified.  I suspect that the DLL didnt get executed at all as it has no entry point specified.
    Am I on the right track to approach this task, or I am heading to totally wrong direction here?   I believe due to the fact that my C++ was from f2c and use vsf2c.lib and so on, the code is managed code, so that a regular DLL cannot be built from it with an entry point. How can LabVIEW call such a DLL? Am I right on that?  I really need your advice here for a right approach to this problem and possible implementation "watch outs"...Thanks!
    Bryan

    Hi...Finally I was able to compile my code with an entry point defined and without using /clr.  I can also call this DLL from LV and got back a variable from a little test function added to the DLL.  But the function that was used for my main application in the DLL crashed LV and I got a pop up box from Microsoft Visual C++ Runtime Library: Runtime Error! "This application has requested the Runtime to terminate it in an unusual way, please contact the application's support team for more information".  In Visual Studio I also got the following message: (I eliminated most of the "No symbols loaded" messages that are not errors but just info.)  I would apprciate if someone can take to look with your more "experienced eyes", many thanks! Bryan.
    'LabVIEW.exe': Loaded 'C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.2180_x-ww_a84f1ff9\comctl32.dll', No symbols loaded.
    'LabVIEW.exe': Loaded 'C:\WINDOWS\system32\xpsp2res.dll', Binary was not built with debug information.
    'LabVIEW.exe': Loaded 'C:\Program Files\National Instruments\Shared\nicont.dll', Binary was not built with debug information.
    'LabVIEW.exe': Loaded 'C:\Program Files\National Instruments\Shared\NICONTDT.dll', Binary was not built with debug information.
    'LabVIEW.exe': Loaded 'C:\Program Files\National Instruments\LabVIEW 8.5\resource\nitaglv.dll', No symbols loaded.
    'LabVIEW.exe': Loaded 'C:\WINDOWS\system32\lkbrow.dll', No symbols loaded.
    'LabVIEW.exe': Loaded 'C:\WINDOWS\system32\lkrealt.dll', No symbols loaded.
    'LabVIEW.exe': Loaded 'C:\Program Files\National Instruments\LabVIEW 8.5\resource\Framework\Providers\lvdaq.mxx', No symbols loaded.
    'LabVIEW.exe': Loaded 'C:\Program Files\National Instruments\LabVIEW 8.5\resource\Framework\Providers\lvdesktop.mxx', No symbols loaded.
    'LabVIEW.exe': Loaded 'C:\Program Files\National Instruments\LabVIEW 8.5\resource\Framework\Providers\lvfp.mxx', No symbols loaded.
    'LabVIEW.exe': Loaded 'C:\WINDOWS\system32\mfc71.dll', No symbols loaded.
    'LabVIEW.exe': Loaded 'C:\WINDOWS\system32\MFC71ENU.DLL', Binary was not built with debug information.
    'LabVIEW.exe': Loaded 'C:\Program Files\National Instruments\LabVIEW 8.5\vi.lib\FieldPoint\SubVIs\FPLVMgr.dll', Binary was not built with debug information.
    'LabVIEW.exe': Loaded 'C:\Program Files\National Instruments\LabVIEW 8.5\resource\Framework\Providers\lvfprt.mxx', No symbols loaded.
    'LabVIEW.exe': Loaded 'C:\Program Files\National Instruments\LabVIEW 8.5\resource\Framework\Providers\LvProjectProxy.mxx', No symbols loaded.
    'LabVIEW.exe': Loaded 'C:\Program Files\National Instruments\LabVIEW 8.5\resource\Framework\Providers\LvRealTimeCoreProvider.mxx', No symbols loaded.
    'LabVIEW.exe': Loaded 'C:\Program Files\National Instruments\LabVIEW 8.5\resource\Framework\Providers\MVEProvider.mxx', No symbols loaded.
    'LabVIEW.exe': Loaded 'C:\Program Files\National Instruments\LabVIEW 8.5\QtCore4.dll', Binary was not built with debug information.
    'LabVIEW.exe': Loaded 'C:\Program Files\National Instruments\LabVIEW 8.5\QtXml4.dll', Binary was not built with debug information.
    'LabVIEW.exe': Loaded 'C:\Program Files\National Instruments\LabVIEW 8.5\QtGui4.dll', Binary was not built with debug information.
    'LabVIEW.exe': Loaded 'C:\Program Files\National Instruments\LabVIEW 8.5\resource\Framework\Providers\mxLvProvider.mxx', No symbols loaded.
    'LabVIEW.exe': Loaded 'C:\Program Files\National Instruments\LabVIEW 8.5\resource\Framework\Providers\nimxlcpp.mxx', No symbols loaded.
    'LabVIEW.exe': Loaded 'C:\WINDOWS\system32\nimxlc.dll', No symbols loaded.
    'LabVIEW.exe': Loaded 'C:\Program Files\National Instruments\LabVIEW 8.5\resource\Framework\Providers\variable.mxx', No symbols loaded.
    'LabVIEW.exe': Loaded 'C:\Program Files\National Instruments\LabVIEW 8.5\resource\Framework\lvMax.dll', No symbols loaded.
    'LabVIEW.exe': Loaded 'C:\Program Files\National Instruments\MAX\UI Providers\FieldPoint71.dll', No symbols loaded.
    'LabVIEW.exe': Loaded 'C:\Program Files\National Instruments\LabVIEW 8.5\resource\MathScriptParser.dll', Binary was not built with debug information.
    'LabVIEW.exe': Loaded 'Z:\bli\development\projects\galfitDLL\Debug\galfitDLL.dll', Symbols loaded.
    'LabVIEW.exe': Loaded 'C:\WINDOWS\WinSxS\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_6b128700\msvcr80.dll', No symbols loaded.
    'LabVIEW.exe': Loaded 'C:\Program Files\National Instruments\LabVIEW 8.5\resource\mesa.dll', No symbols loaded.
    'LabVIEW.exe': Loaded 'C:\WINDOWS\system32\mscms.dll', No symbols loaded.
    'LabVIEW.exe': Loaded 'C:\WINDOWS\system32\icm32.dll', No symbols loaded.
    The thread 'Win32 Thread' (0xf94) has exited with code 0 (0x0).
    The thread 'Win32 Thread' (0x90c) has exited with code 3 (0x3).
    The thread 'Win32 Thread' (0xfd0) has exited with code 3 (0x3).
    The thread 'Win32 Thread' (0x284) has exited with code 3 (0x3).
    The thread 'Win32 Thread' (0xdac) has exited with code 3 (0x3).
    The thread 'Win32 Thread' (0xa98) has exited with code 3 (0x3).
    The thread 'Win32 Thread' (0x528) has exited with code 3 (0x3).
    The thread 'Win32 Thread' (0x614) has exited with code 3 (0x3).
    The thread 'Win32 Thread' (0xa5c) has exited with code 3 (0x3).
    The thread 'Win32 Thread' (0xebc) has exited with code 3 (0x3).
    The thread 'Win32 Thread' (0x5cc) has exited with code 3 (0x3).
    The thread 'Win32 Thread' (0x700) has exited with code 3 (0x3).
    The thread 'Win32 Thread' (0xcf0) has exited with code 3 (0x3).
    The thread 'Win32 Thread' (0xc7c) has exited with code 3 (0x3).
    The thread 'Win32 Thread' (0x4c8) has exited with code 3 (0x3).
    The thread 'Win32 Thread' (0xa4) has exited with code 3 (0x3).
    The thread 'Win32 Thread' (0x52c) has exited with code 3 (0x3).
    The program '[804] LabVIEW.exe: Native' has exited with code 3 (0x3).

  • Error in Calling a dll built in labview from Matlab standalone

    hello,
    The problem I encountered is in the use of the math interface toolkit. I
    created a dll which performs data fitting using a labview vi which i converted into a dll using the
    math interface toolkit.
    This dll is then called from a standalone matlab program. It works fine in the computer where I
    create the matlab standalone program and labview dll. Howerver when i export to another
    computer the matlab part runs fine but an error is reported when it tries to
    call the labview created dll.
    "One or more output arguments not assigned during call Parfit.dll"
    The files related to this problem in the math interface toolkit (the labview vi, the corresponding dll and the matlab .m and .fig files and the standalone exe are in the attachment and named MathITproblem.zip
    The matlab run time engine(for matlab 7) and labview runtime engine(ver 7.1) must be installed for this matlab file to run. the run time engines are downloadable from the web.
    Does any one know the source of this error or encountered it before?
    thanks
    Attachments:
    MathITproblem.zip ‏1263 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

  • Help:alternate for calling function in where clause

    Hi ,
    In below query i'm calling function in where clause to avoid COMPLETE status records,due to this query taking 700 secs to return result.If i'm remove below function condition it's returning results with in 5 secs.Can you some one advice to any alternate idea for this?
    WHERE mark_status != 'COMPLETE'
    SELECT assessment_school,
      subject,
      subject_option,
      lvl,
      component,mark_status,
      mark_status
      NULL AS grade_status,
      NULL AS sample_status,
      :v_year,
      :v_month,
      :v_formated_date,
      :v_type,
      cand_lang
    FROM
      (SELECT assessment_school,
        subject,
        subject_option,
        lvl,
        programme,
        component,
        paper_code,
        cand_lang,
        mark_entry.get_ia_entry_status(:v_year, :v_month, assessment_school, subject_option, lvl, cand_lang, component, paper_code) AS mark_status
      FROM
        (SELECT DISTINCT ccr.assessment_school,
          ccr.subject,
          ccr.subject_option,
          ccr.lvl,
          ccr.programme,
          ccr.language AS cand_lang,
          ccr.paper_code,
          ccr.component
        FROM candidate_component_reg ccr
        WHERE ccr.split_session_year = :v_year
        AND ccr.split_session_month  = :v_month
        AND EXISTS
          (SELECT 1
          FROM IBIS.subject_component sc
          WHERE sc.year          = ccr.split_session_year
          AND sc.month           = ccr.split_session_month
          AND sc.paper_code      = ccr.paper_code
          AND sc.assessment_type = 'INTERNAL'
          AND sc.subject_option NOT LIKE '%self taught%'
          AND sc.component NOT IN ('PERFORMANCE  PRODUCTION','PRESENTATION WORK','REFLECTIVE PROJECT','SPECIAL SYLLABUS INT. ASSESSMENT')
        AND NVL(ccr.withdrawn,'N') = 'N'
        AND ccr.mark_status       != 'COMPLETE'
        AND EXISTS
          (SELECT 1
          FROM school s
          WHERE s.school_code   = ccr.assessment_school
          AND s.training_school = 'N'
    WHERE mark_status != 'COMPLETE';

    One thing you can test quickly is to put the function call in it's own select ...from dual.
    This might make a difference.
    However, only you can check this, I don't have your tables or data.
    So, what happens if you use:
        paper_code,
        cand_lang,
      (select mark_entry.get_ia_entry_status(:v_year, :v_month, assessment_school, subject_option, lvl, cand_lang, component, paper_code) from dual ) AS mark_status
      FROM
        (SELECT DISTINCT ccr.assessment_school,  --<< is the DISTINCT really needed?
          ccr.subject,
          ccr.subject_option,
    ...Also, try to find out the purpose of that above DISTINCT, is it really needed or is there some join missing?

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

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

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

  • How to give call to dll in indesign plugin

    Hello All ,
    I am developing one indesign plugin on Mac OS X 10.4.
    I want to give a call to one dll in pluging code.
    But the problem with mac os x according to my knowladge ,dll need to be build in same project where we are calling that dll.
    That is why I build a xyz.dylib in same project for indesign plugin as one of the target. and I am coping it in Indesignplugin package content that is with release mode build.but dll gets build in debug mode.On Mac OS X I am using dlopen and dlsym call . But I am not able to call a dll present in indesign plugin package content. Any idea How to call a dll in indesign plugin on Mac OS X.Should we need tyo build a xyz.dylib file in release mode ?
    Thanks,
    Pallavi.

    Seems to me I don't understand something, or text format plugin isn't quite well example. But, I got some code from sdk to create layer with automation like this:
    SPErr MakeLayer(void) {
    PIActionDescriptor descriptor = NULL;
    PIActionReference reference = NULL;
    PIActionDescriptor result = NULL;
    SPErr error = kSPNoError;
    error = sPSActionDescriptor->Make(&descriptor);
    if (error)
    goto returnError;
    // Move this to the top of the routine!
    error = sPSActionReference->Make(&reference);
    if (error)
    goto returnError;
    error = sPSActionReference->PutClass(reference, classLayer);
    if (error)
    goto returnError;
    error = sPSActionDescriptor->PutReference(descriptor, keyNull, reference);
    if (error)
    goto returnError;
    error = sPSActionControl->Play(&result, eventMake, descriptor,
    plugInDialogSilent);
    if (error)
    goto returnError;
    returnError:
    if (result != NULL) sPSActionDescriptor->Free(result);
    if (descriptor != NULL) sPSActionDescriptor->Free(descriptor);
    if (reference != NULL) sPSActionReference->Free(reference);
    return error;
    and wrote aeta resource:
    resource 'aete' (16000, "myFile" " dictionary", purgeable)
    1, 0, english, roman,
    vendorName,
    "description",
    plugInClassID,
    1,
    1,
    vendorName " myFormat",
    plugInAETEComment,
    plugInClassID,
    plugInEventID,
    NO_REPLY,
    IMAGE_DIRECT_PARAMETER,
    "create",
    keyMyCreate,
    typeMyCreate,
    "create type",
    flagsEnumeratedParameter
    typeMyCreate,
    "layer",
    createLayer,
    "make layer"
    And what now? Is any better examples?

  • 10g UIX Where to put ResourceBundle?

    I'm looking at putting all my Strings in a ResourceBundle for my UIX pages. I've read the documentation for Internationalization, but I think the piece that I'm missing is where to put the properties file. Say I've got a file called 'strings.properties', and my provider looks like this:
    <provider>
         <data name="bundle" >
              <bundle class="strings.properties" />
         </data>
    </provider>Then where in the JDev project do I need to have the file in order for it to get deployed properly and found by the UIX framework at runtime?
    Also, just to be sure I'm not going crazy, I know that the documentation and even the bundle tag say to specify a Class, and I just noticed that the ResourceBundle javadoc also says that the 'baseName' parameter to the static 'getBundle' method should be a 'fully qualified class name', but I've always just given it a filename of a properties file before. So I'm assuming that the 'class' parameter to the bundle tag can be a properties filename -- is this correct?

    Whoops! Of course, the argument to the bundle class attribute should just be 'strings'.
    After some experimentation, I discovered that if I put the properties file at the root of the 'src' directory in my JDev project, then it gets transferred to the 'classes' output directory when I compile. This works for running my project in the Embedded OC4J. I haven't tried deploying it to any other app server yet. Is this the right place?

Maybe you are looking for