Calling Labview from VC++

I'm attempting to call Determinant.vi
(vi.lib\analysis\7linalg.ilb\Determinant.vi) from
Visual C++. I've actually gotten the
Determinant.vi to take a matrix that I pass it
from Visual C++ and return the determinant to me.
However, to get the determinant.vi to return an
answer to VC++, Labview has to be running, and
Determinant.vi has to be manually opened
from the Functions palette and placed on the block
diagram panel. Should determinant.vi have to be
opened before I can use it from VC++?
Sent via Deja.com http://www.deja.com/
Share what you know. Learn what you don't.

Sorry for not being able to tell you exactly what you have to do but I have
used Active X only from inside of LabVIEW and someone still needs to
convince me that Active X is something more serious than just having a
few nice demos which work only sometimes. The hassle of distributing
an application which uses Active X seems overwhelming to me and
version conflicts are more common than not.
Do you have an Active X method like Open VI or something like this or
does GetVIReference allow for a complete path? Check out that the
path to the VI you want to open is correct. If you just define the name
LabVIEW won't be able to find the VI as the VI server in LabVIEW
does not search for VIs. It tries to find a VI with that name first in
memory and if i
t isn't there it tries to load a VI from the literal path
you specify. If both fail you get an error back.
[email protected] wrote in article <7qj86j$g81$[email protected]>...
> What I'm asking is does the vi that I'm using have to be manually opened
> (using LabVIEW), and manually placed in a block diagram window (using
> LabVIEW) in order to use its functionality from Visual C++? I would
> think you could do all of this from VC++ without having to load the vi
> using LabView. My program is designed to start LabView, open the
> Determinant.vi and begin using it. My program does this, but I get an
> exception from the GetVIReference call if I have not opened up LabView
> and the VI that I want to use before running my VC++ program. If I open
> LabView and the VI that I want to use before I run my VC++ program, then
> everything works fine. Has anybody else had this problem?
Rolf Kalbermatter
CIT Engineering Netherlands
a division of Test & Measurement Solutions

Similar Messages

  • How to call LabVIEW from TestDirector

    Hai to all,
    I want to call LabVIEW function from TestDirector. That TestDirector using VBScript. is it posible? if posible can you give the procedure.
    thanks for advance!
    reddy

    Hello,
    in this case you have to contact Mercury for more informations. There are no experiences in this way from the LV side.
    Regards
    Thomas D.
    NI Germany
    (SRQ 204139)

  • Calling labview from external code

    hello all,
    I m a student and new to labview,i just want to ask that whether i can call VI developed in LAbview form my c++ code?
    plz reply,it's urgent.
    waititng for replies.
    Thanx

    9866662680 wrote:
    hello all,
    I m a student and new to labview,i just want to ask that whether i can call VI developed in LAbview form my c++ code?
    plz reply,it's urgent.
    waititng for replies.
    Thanx
    If
    you have the Application Builder or the LabVIEW Professional Developer
    system you can compile the VI into a DLL and call that DLL as a
    standard C DLL from Visual C(++). OTherwise you could call LabVIEW over
    Active X and execute the VI through that. There are examples for
    calling LabVIEW through Active X in your LabVIEW installation.
    Rolf Kalbermatter
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

  • Calling LabVIEW from C# Using ActiveX?

    Hi,
    I try to call LabVIEW VI's from C# using ActiveX/COM, but I am not
    successful. I was able to do this from C++ and there are nice articles on
    the NI site dealing with the C++ integration.
    I tried to follow the instructions of the C# help, using a wrapper for the
    LabVIEW application call. I included the TypeLib that I created with the
    tlbimp-tool in my project. Basically my code looks like this:
    LabView50TypeLib._Application myLV = new
    LabView50TypeLib.ApplicationClass() ;
    LabView50TypeLib.VirtualInstrument myVI = new
    LabView50TypeLib.VirtualInstrument();
    myVI = myLV.GetVIReference(,?,?);
    myVI.SetControlValue();
    myValue= myVI.GetControlValue();
    myLV.Quit();
    I even don't know if the fi
    rst line is correct. I know that the second line
    is not OK, because there is no class "VirtualInstrument" - but from what
    class should I derive my instance for the VirtualInstrument? And different
    from my C++ implementation, the GetVIReference now needs 3 parameters
    instead of 1 (the path).
    What am I doing wrong? Does anybody have a working example on this?
    Thanks a lot & best regards,
    Martin Schellenberger

    Hello
    After adding a reference to the LabVIEW type lib to the project (I just to o to Project >> Add Reference and I browse for the typelib myself), and including the labview namespace at the top,here is what I tried
    using LabVIEW;
    //form code here
    //Event for button code
    LabVIEW.Application lv = new LabVIEW.ApplicationClass();
    LabVIEW.VirtualInstrument vi= lv.GetVIReference(@"c:\a.vi","",false);
    vi.FPWinOpen=true;
    vi.Run(true);
    So all it does is it opens the VI and runs it, seems to work fine. Hope this helps
    Bilal Durrani
    NI
    Bilal Durrani
    NI

  • Calling LabView from ASP or PHP ?

    Hi;
    I was wondering if someone could help me.
    I need to control a spectrum analyzer remotely.. The VI's are ready, and I would Like to call/Run them from ASP/PHP in order to enable the remote client to interact with the VI's via a normal Web Browser.
    Tips:
    client should be able to send the VI's some data(variables).
    Get the results back and display it on the web page.
    Kind Regards
    K.S.
    Student

    In that case, you might want to check http://www.jeffreytravis.com/. He has a book called "Internet Applications in LabVIEW". The book was written before 6.0 introduced remote panels. There's also an application there available for download called LabVNC that might work for you. I haven't tried it but it sounds like it would do the trick.

  • Calling LabVIEW from DIAdem

    I am trying to run a LabVIEW VI from DIAdem. I looked in the help files but the example seems to only open LabVIEW 7.0 and not open the VI. The process stops on the LabVIEW startup screen. Also I have LabVIEW 7.1 loaded on my machine and would like to be able to select which version of LabVIEW I start with DIAdem. Is any of this possible?
    Thanks in advance.
    AJL

    Hi AJL,
    If your VI happens to be in the LabVIEW directory or subdirectory structure, you can use native functions in DIAdem 9.1 to call that VI from DIAdem. If the VI is further configured to run when opened, it will automatically start:
    IF IsAvailLabVIEW = TRUE THEN
    LVTemplatePath = "examples\DIAdem\File\File Headers\"
    LVTemplateVI = "Binary File Analyzer.vi"
    Call LaunchLabVIEW
    END IF
    Otherwise you will need to create VBScript object variables from the VI server of LabVIEW and execute their methods and set their properties to have the same remote control over the VI as you would from another VI using VI server. The example Tom pointed you to shows this in intricate detail, in the context of a very large application. Here's what VI server looks like in VBScript:
    Dim lvapp, vi, viPath, paramName(0), paramVal(0)
    Set lvapp = CreateObject("LabVIEW.Application")
    viPath = "C:\Favorite LV Menu\Binary File Analyzer.llb\Binary File Analyzer.vi"
    Set vi = lvapp.GetVIReference(viPath)
    vi.FPWinOpen = True
    paramName(0) = "file path"
    paramVal(0) = "C:\DIAdem Hands-On\ReadMe.txt"
    Call WndShow("SHELL", "MINIMIZE")
    Call vi.Call(paramName, paramVal)
    Call lvapp.Quit()
    You can read and write more than one parameter for VIs with multiple input/output terminals. Note that the paramName() and paramVal() variables are VBScript arrays. The number of elements in these arrays does NOT have to match the number of terminals-- all you need to put in these VBScript arrays are the parameters that you care to read/write in the VI.
    Ask if you have additional questions,
    Brad Turpin
    DIAdem Product Support Engineer
    National Instruments

  • How can i use labview.tl​b to control Labview from an external applicatio​n?

    Hi,
    I've been told by a labview engineer that i could use the file
    labview.tlb located in the labview install folder to control labview
    from an external application (in my case, a C# app). I'm using Labview
    6.1 under Windows 2000. This article confirms that:
    "ActiveX and LabVIEW"
    http://zone.ni.com/devzone/conceptd.nsf/webmain/54​01BE584FBAEECE862567C2006D36C7?opendocument
    But i've not been able to find out how to use this file to achieve
    what i want. I just want to be able to open/close labview, open/close
    a vi, start/stop a vi, hide/show a vi from a C# application. The above
    web page talks about activex but i really don't see the realtion
    between activex and that labview.tlb file.
    Is there so
    mebody around who knows how to use that file? Why does NI
    tell us that it's possible to do what i want to do but doesn't explain
    how (or hides this info very well)?
    Thanks

    Hi,
    > Hi I am fighting a similar problem and so far I found this: Calling
    > LabVIEW from C++ Using ActiveX
    >
    > http://sine.ni.com/apps/we/niepd_web_display.DISPL​AY_EPD4?>p_guid=B45EACE3E21356A4E034080020E74861&p​_node=DZ52051&p_submitted=N&p_rank=&p>_answer=&p_s​ource=External
    Thanks for the link, i actually already found this link before. I've
    found yesterday how to use Labview.tlb, just add it to the references
    of the project, it was probably too easy for me at that time:-) But
    now, i'm still stuck as there is no doc about using the interfaces and
    classes of this activex to control labview.
    The example given on your link is made is C++ and for some reasons,
    the wrapper generated for Labview.tlb when i added it to my c# project
    doesn't seem to expose the same
    interfaces and classes as the one used
    in the C++ example. I therefore can't use the C++ example in C#.
    I've tried to do something like:
    LabVIEW.ApplicationClass a = new LabVIEW.ApplicationClass();
    Just this line causes labview to launch but then immediately throws an
    exception: "Query interface for interface LabVIEW._IApplication
    failed".
    Does somebody knows how to use that control in C#/VB.NET ?

  • Where can I get an example of how to call Labview.exe (Active X Server) from Visual C++

    I would like to Call Labview application (as Active X Server) from Visual C++. I need any type of exemple on how to do this, any input will be greatly apriciated.

    In the summer there has been an example in the Developer Zone, but i can't find it again. I can send you the attached zipfile from that example. The example is resricted to single threaded applications. In multi threaded applications you must initialise OLE in the thread where you communicate with the active-X server.
    If you need more information contact me at [email protected]
    Waldemar
    Using 7.1.1, 8.5.1, 8.6.1, 2009 on XP and RT
    Don't forget to give Kudos to good answers and/or questions
    Attachments:
    VCandLabVIEW.zip ‏91 KB

  • Creating a DLL in Labview 8.6 and calling it from Visual Basic 6.0

    Dear friends,
    I need to create a DLL in Labview 8.6 and call it from Visual Basic 6.0. The system works as follows:
    I made an application using Labview 8.6 + Vision Assistant 8.6 where I can obtain the x,y coordinates of a template in an certain image being captured by an USB camera. The template coordinates change every time it moves and Visual Basic 6.0 must read these x,y values in real time. I found some information in the link http://zone.ni.com/devzone/cda/tut/p/id/3925, but it works for version 6.x of Labview and 8.6 version is different. Am I in the right path? If you have an updated tutorial like the one in the link above but for Labview 8.6 It would be very nice. Please help me.
    Kind regards.
    João Júnior

    Hello Osvaldo,
    I analysed the updated tutorial you sent me, but the thing is that it doen't show how to create the DLL in LV 8.6 but only show how to accessing the DLL from VB6. My problem is really HOW TO CREATE THE DLL IN LV8.6. In the link http://zone.ni.com/devzone/cda/tut/p/id/3063 there is detailed information about how to do this in LV6.x, the problem is that I don't find the path Tools»Build Application or Shared Library (DLL) in LV8.6, I think the procedure in LV8.6 is a little bit different. Don´t you have an updated tutorial on how to build a dll in LV8.6?How could you help me?
    Kind regards.
    João Júnior

  • Some errors when calling LabVIEW VIs Interactively from DIAdem

    Hi! I'm having some trouble using the "Calling LabVIEW VIs Interactively from DIAdem" found on:
    http://zone.ni.com/devzone/conceptd.nsf/webmain/1A98AB48E35D913086256E23004E6A22
    Following the troubleshooting section didn't resolve the issue. I
    recompiled and built the exe (DIAdemLabVIEW.exe) for version 7.1.1,
    which I am developing on. But still I got the same error message, after
    a waiting for about a minute, on a diadem popup window:
    Error in <MenuAdd...ctDo.vbs (row:1, column: 1)
    Error in <addmenuentry.vbs (row:14, column: 3)
    ActiveX component can't create object.: 'DIAdemLabWIEV.Application'
    Using the llb's and exe's that was included with the installer worked
    flawless, with the exception that LV 7.1.1 vi's didn't appear on the
    popup window(DIAdemLabWiev.vi). So I tried to recompile and build for
    the 7.1.1, with this result.
    I'd be very grateful for fixes or solutions for this problem!
    Regards
    Roger Isaksson

    Brad, thanks for the reply! Below is my (correct?) modification of your script. Have I got it right?
    Dim lvapp, vi, viPath, paramName(1), paramVal(1)
    Set lvapp = CreateObject("LabVIEW.Application")
    viPath = "C:\TEMP\Test.exe"
    Set vi = lvapp.GetVIReference(viPath)
    vi.FPWinOpen = True
    paramName(0) = "In Name"
    paramVal(0)  = "In Value"
    paramName(1) = "Ut Name"
    Call vi.Call(paramName, paramVal)
    Call lvapp.Quit()
    MsgBox "Parameter1 Value = " & paramVal(1)
    I am not sure about the format of the <paramName(0) = "In Name">.
    The control name is "In" and is a I32, the name for the indicator is
    "Ut" and has the same storage type as the control.
    Running the script gives an error in line 4, that is the <Set vi =
    lvapp.GetVIReference(viPath)>. I'll attach the exe and the error
    message.
    I have another question regarding the relatively large amount of RAM
    that diadem uses for export from my labview application to diadem. More
    than 10 times the size of the data is required for exporting to diadem.
    Since our application use relatively large files, actually up to
    several GB's, this soon becomes problematic. See the attached picture
    of the memory usage after exporting a 10MB segment (contains 42
    channels of measurement data). Your help in these matters would be
    appreciated!
    Regards
    Roger Isaksson, Damill AB
    Message Edited by Roger Isaksson on 09-09-2005 10:22 AM
    Message Edited by Roger Isaksson on 09-09-2005 10:22 AM
    Attachments:
    VBError.JPG ‏181 KB
    Test1.vi ‏9 KB

  • Call LabVIEW VIs from MATLAB

    Does anybody know of a simple way to call LabVIEW VIs from within a MATLAB m-file?  I would like to be able to write VIs in LabVIEW and then script them (for stochastic analysis, etc.), and think MATLAB would be an awfully convenient way to do this (also useful for data analysis, etc.).  I have looked at LuaVIEW, but it appears to have been largely abandoned.
    Thanks!

    Hello Erik,
    Building it into a DLL as Altenback said is a solid way to do this, and here's a Knowledge Base article that also explains how to transfer data in binary or ASCII format, How do I Transfer Data Between The MathWorks, Inc. MATLAB® Software Development Environment and LabV... 
    Thank you,
    Deborah Y.
    LabVIEW Real-Time Product Marketing Manager
    Certified LabVIEW Architect
    National Instruments

  • Calling labview executable from teststand

    I have a labview VI that I build into an exe, and I'd like to call it from my teststand sequence in the setup - other test steps need to use its capabilities in the remainder of the sequence (main).  If it were just a VI, then no problem, the inputs would be visible to me, and I could pass them in.  Since it's an executable, though, my step is of type "Call Executable", but I don't see anywhere that it allows me to pass in the inputs it needs.  Thoughts?
    Solved!
    Go to Solution.

    What version of TestStand are you using?  With TestStand 4.0 for the 'Call Executable' step there is a line called
    Argument Expression:
    Enter your parameters to pass into your LabVIEW executable.  You will have to know which ones to pass in and in what order. I believe you can seperate the arguments by spaces.  In my attachment, I pass in one parameter to a LabVIEW executable.
    Remember, though you have to set the Build properties in LabVIEW to allow it to Pass command parameters to the application.
    Thanks,
    PH
    Attachments:
    Call Executable.JPG ‏48 KB

  • How to call labview DLL from C#, passing char, char[], float[], long, short

    Hi,
    I'm having trouble calling labview dll from C# to perform certain function.
    The function supposed to return the values in the float Analysis[] array. However, when I execute it it only returns zero values.
    It seems that some parameters are not properly passed to the dll.
    Below is the function in the header file:
    void __stdcall Optical_Center(char FileDirectory[], long ImagePtr,
        short int Height, short int Width, char ReadFromFile, float Analysis[],
        long lenAnalysis);
    and my corresponding dll import in c#:
    [DllImport(@"SMIA.dll", CharSet = CharSet.Ansi)]
            public static extern void Optical_Center([MarshalAs(UnmanagedType.LPStr)]string FileDirectory, long ImagePtr,
                short Height, short Width,char  ReadFromFile, IntPtr Analysis,
                long lenAnalysis);
    string str = @"C:\SMIA.raw";
    int len = 3;
    long m_lenAnalysis = 3;
    long m_ImagePtr = 0;
    short m_Height = 2464;
    short m_Width = 3280;
    IntPtr m_PtrArray = Marshal.AllocHGlobal(len * Marshal.SizeOf(typeof(float)));
    char m_ReadFromFile = '1';
    Optical_Center(str,m_ImagePtr,m_Height,m_Width,m_ReadFromFile,m_PtrArray,m_lenAnalysis);
    float[] m_Analysis = new float[len];
    Marshal.Copy(m_PtrArray, floatArray,0,len);
    Marshal.FreeHGlobal(m_PtrArray);
    string printstr = "";
    for (int i=0; i<len; i++)
        printstr = printstr + floatArray[i].ToString() + "\n";       
    MessageBox.Show(printstr);
    Appreciate if anyone can help, thanks.
    KL

    I was just about to post the header file of the DLL, when
    I noticed that there's a function called LVDLLStatus.
    This little thingie turned out to be a rather handy tool.
    With that function I found that in the DLL I had a problem
    with another function that prevented the DLL to be correctly
    loaded.
    This other function in the DLL is for generating digital output
    and it worked as it should, when tested from LV.
    Anyway if someone is interested, I got it working by using
    the LoadLibrary and GetProcAddress function, as in the
    source code thatI posted earlier.
    I will investigate what is wrong with that digital output, and
    post into a another thread if I have problems with that.

  • How to call Labview DLL from VB2005

    Dear all expert,
    I'm a student and very new in Labview programming.
    Currently i have build a simple vi and need to convert it to dll so that i can call it from my VB.net. But the problem is how to call the labview dll from my VB.net?
    I know we must declare function something like this,
    Auto function Bodeplot Lib"..\\Bodeplot.dll" (Byval Val1 as double, Byval Val2 as double,...) as double
    but how to determine Val1, Val2 (and so on) is input for which data?  if my vi have 10 input (frequency, Kc,Fcz,Fcp,Wzrhp,Wp,k,Wz,Beta and Operation) ? and how to select the output (my application have 3 possible output : magnitup loop,phase loop, and degree loop)
    In addition, since I'm using Labview 8.0 , and as i know apllication  builder for this version cannot convert vi to dll which contain Mathscript (but unfortunely, my vi all use Mathscript), so really hope someone can help me to convert my vi to dll using Labview 8.2 (which remove this limitation).
    here I'm attach my Vi and really hope someone willing to help.
    Thank you.
    Attachments:
    bodeplot.vi ‏1049 KB

    On Sep 17, 6:40 am, cckoh <[email protected]> wrote:
    > Dear all expert,
    > I'm a student and very new in Labview programming.
    > Currently i have build a simple vi and need to convert it to dll so that i can call it from my VB.net. But the problem is how to call the labview dll from my VB.net?
    > &nbsp;
    > I know we must declare function something like this,
    > &nbsp;
    > Auto function Bodeplot Lib"..\\Bodeplot.dll" (Byval Val1 as double, Byval Val2 as double,...) as double
    > &nbsp;
    > but how&nbsp;to determine Val1, Val2 (and so on) is input for which data?&nbsp; if my&nbsp;vi have&nbsp;10 input (frequency, Kc,Fcz,Fcp,Wzrhp,Wp,k,Wz,Beta and Operation)&nbsp;? and how to&nbsp;select the output (my application have 3 possible output : magnitup loop,phase loop, and degree loop)
    > &nbsp;
    > In addition, since I'm using Labview 8.0 , and as i know apllication&nbsp; builder for this version cannot convert vi to dll which contain Mathscript (but unfortunely, my vi all use Mathscript), so really hope someone can help me to convert my vi to dll using Labview 8.2 (which&nbsp;remove this limitation).
    > &nbsp;
    > here I'm attach my Vi and really hope someone willing to help.
    > &nbsp;
    > Thank you.
    > &nbsp;
    >
    > bodeplot.vi:http://forums.ni.com/attachments/ni/170/272124/1/bodeplot.vi
    If you insist on using Labview with your project then you should
    consider using ActveX in place of using a dynamic link library to
    interface to your VB.net code. You don't need "Application Builder"
    if you use ActiveX. The Student, Basic and Full development versions
    of Labview for Windows come with ActiveX capability. For more
    information on ActiveX look up the subject ActiveX in Labview's Help
    File.
    Howard

  • How to call LabVIEW dll from ATL COM dll

    I have tried to call simple LabVIEW 8.6 Dll from win32 test application, class Library.
    I have include LabVIEW generated SharedLib.h file and SharedLib.lib file in the test application which I created as simple win32 console project and also from win32 class Library. I was sucessfully able to call my LabVIEW dll funtion. 
    But when I create ATL COM project and try to add SharedLib.h file and SharedLib.lib file I used to get following erors
    Error 1 error C2733: second C linkage of overloaded function 'StrCatW' not allowed d:\program files\national instruments\labview 8.6\cintools\extcode.h 463 
    Error 2 error C2733: second C linkage of overloaded function 'StrCpyW' not allowed d:\program files\national instruments\labview 8.6\cintools\extcode.h 464 
    Error 3 error C2733: second C linkage of overloaded function 'StrCpyNW' not allowed d:\program files\national instruments\labview 8.6\cintools\extcode.h 465 
    Error 4 error C2733: second C linkage of overloaded function 'StrCmpW' not allowed d:\program files\national instruments\labview 8.6\cintools\extcode.h 466 
    Error 5 error C2733: second C linkage of overloaded function 'StrCmpNW' not allowed d:\program files\national instruments\labview 8.6\cintools\extcode.h 467 
    these many errors.
    Will some one explain me how to call LabVIEW dll from ATL COM dll.
    Thanks & Regards,
    Jay

    I also had this problem.  My application is unicode-aware, but I was attempting to link it to a library with primitive C-string arguments.  You could dynamically load the DLL as suggested (more work), modify the header files (really not recommended), or if you are feeling lucky you could try fooling the compiler, as I was successfully able to do in Visual Studio 2010, by steering the preprocessor around those functions (assuming you're not using them, of course -- otherwise this probably wouldn't work):
    // prepare for NI extcode.h inclusion. avoid linker errors for this project.
    #define StrCatW(a,b)     IgnoreLinkError_StrCatW(a,b);
    #define StrCpyW(a,b)     IgnoreLinkError_StrCpyW(a,b);
    #define StrCpyNW(a,b,c)  IgnoreLinkError_StrCpyNW(a,b,c);
    #define StrCmpW(a,b)     IgnoreLinkError_StrCmpW(a,b);
    #define StrCmpNW(a,b,c)  IgnoreLinkError_StrCmpNW(a,b,c);
    // header file for my LabView-built DLL (ASCII single-byte character arguments)
    #include <MyLibraryHeader.h>
    // clean up afterwards, put things back to 'normal'
    #undef StrCatW
    #undef StrCpyW
    #undef StrCpyNW
    #undef StrCmpW
    #undef StrCmpNW

Maybe you are looking for

  • How to create an encrypted key for a user table

    I have an airshow website where volunteers and vendors can apply online (www.hollisterairshow.com) . The city attorney requires that we have a wet signature on a printed application form so the volunteer/ vendor currently has to print their applicati

  • How to print screen in HP Pavilion g series?

    hey. I'm using the HP Pavilion g series laptop. I've been using it for more than 2 years. But i really don"t know how to print screen in it.Hope you could help. Thank you.

  • ITunes crashing... imagine that

    Since ver 6.5... I have had nothing but issues. I tunes will crash out of no where and ask to send an error report or ITunes won't even open. With ver 7.1 I am still havig the crash and non opening issue but when it does open it asks if I want Itunes

  • Is iTunes for a Mac really any different than the Windows version?

    My friend wants to know and I don't have a Mac computer. Is the Mac version faster? Easier to use? Does it have additional features? Thanks

  • RSA key and block size

    Let's say that I have an RSA key pair that has been generated in a keystore using the keytool utility. I am now accessing this key pair through some java code (using the Keystore class) and I want to encrypt/decrypt data using this public/private key