How to pass a pointer in labview library call function by using dll programmed in Labwindows​?

Hi,
I'm trying to interface a camera with Labview.  However, the camera can only be programmed by C, so I'm using Labwindow CVI.
I need to pass a camera handle from one function to another, eg. from a opencamera function to setparameter function.  
/* Load the Qcam driver and Open the First Camera */
void DLLEXPORT LoadDriverAndOpenCamera()
QCam_CamListItem cameraList[10];
unsigned long cameraListLength=sizeof(cameraList)/sizeof(cameraL​ist[0]);
//load the driver
QCam_LoadDriver();
//get a list of the cameras
QCam_ListCameras(cameraList,&cameraListLength);
//listLength is now the number of cameras available
QCam_Handle hCam;
//Open the first camera in the list
QCam_OpenCamera(cameraList[0].cameraId, &hCam);
Apparently, caemraId is an unsigned long (unsigned 32-bit in Labview 2012 32-bit? ) and QCam_Handle is defined as void*, so it's a pointer that points to an unsigned 32-bit.
When I only use C for programming, I can pass hCam variable to other functions as long as it's declared as global variable.  Ex, the next function can be void SetParameter(QCam_Handle hCam).  However, here I'm trying to make a dll by Labwindows/CVI and then call LoadDriverAndOpenCamera() function through library call in Labview.  
My question is:  How can I pass hCam to other functions in the same dll?  Do I have to add paramter to the function? For example:
void DLLEXPORT LoadDriverAndOpenCamera(unsigned long cameraId, QCam_Handle* cameraHandle)
And then add two lines:
cameraId=cameraList[0].cameraId;
cameraHandle=hCam;
into the function?  Then I can pass cameraHandle out?  However, hCam will still have void* type.
Even if that's the case, how can I set up library call node on Labview?  In the arg parameter set up, I don't see pointers?  It seems I cannot set up an output node to be a pointer that points to a unsigned long.
Thank you very much for your help!
Best,
Charles
Solved!
Go to Solution.

Hello Charles, 
I noticed you posted a similar question here. do you have any further questions about using the call library function node? 
Haley N
Applications Engineer
National Instruments

Similar Messages

  • Who knows how to output some text once labview detects something I want using pattern matching(V​ision assistant)​?

    who knows how to output some text once labview detects something I want using pattern matching(Vision assistant)?
    The text is something like"Yes, this is a coin"
    Thanks!

    I attached a SubVI which I used to place an overlay next to a Pattern, found by a Pattern Match before:
    As you can see, you simply pass the image reference and the Array of Matches to the VI along with the String you want to have as an overlay next to the Match.
    I also modified your VI a bit, but didn't test it. I created an Array of clusters, each elment containing the template path along with the respective text.
    Please note that this is just a hint!
    Christian
    Attachments:
    suggestion.vi ‏146 KB
    Overlay_Txt.vi ‏24 KB

  • How to pass a filename to MQHRF2 header in IBM MQ using JMS Adapter in SAP PI

    Hi Expers,
    Can you please help on ...
    how to pass a filename to MQHRF2 header in IBM MQ using JMS Adapter in SAP PI
    Thanks,
    Chandar

    Hi Chandar,
    Could you check the following post Re: Inserting custom header fields inside MQRFH2 (JMS Receiver adapter)?
    I hope you find it useful.
    Regards!

  • How to pass column name at run time in function.

    how to pass column name at run time in function as parameter.
    thank in advance
    pramod patel

    Hello,
    Using dynamic sql you can pass column name to function. well I am not getting what you really want to do ? Please write in more detail. By the way I am providing one example here. see it uses dynamic sql.
    Create or replace function fun_updtest (p_columnname_varchar2 in varchar2,
    p_value_number in number)
    return number is
    v_stmt varchar2(500);
    begin
    v_stmt := 'update emp
    set '||p_columnname_varchar2||' = '||to_char(p_value_number)||'
              where empno = 7369';
    execute immediate v_stmt;
    return 0;
    commit;
    end;
    call to this function can be like this..
    declare
    v_number               number;
    begin
    v_number := fun_updtest('SAL',5000);
    end;
    Adinath Kamode

  • How the **** do i get back my library i was just using.No didn't save image or restore been using it for months the same way no tells me to choose or create a library and my previous versions don't recover

    How the **** do i get back my library i was just using.No didn't save image or restore been using it for months the same way no tells me to choose or create a library and my previous versions don't recover.Please help I just deleted all doubles did allmy artwork Etc..

    Do you have a back up?
    If not you're into using file recovery software like  File Salvage - you can download a free trial and it will scan the disk for you and tell you with might be recoverable. Actual recovery will require that you purchase the app. There may be many files with the same or similar names. Always recover the largest file size.
    There are other such apps. Search on Macupdate or the App Store

  • How can I build an application that calls functions in a dll if the associated hardware is not present?

    I am trying to build an application that use the "Call Library Function" node to call functions in a dll.
    The dll was provided by a third-party and includes functions to drive an I2C communication board.
    The problem I have is that the dll does not not properly because the hardware is not present.
    Therefore when I load the VI a broken arrow is displayed and when I am not able to build the application.
    I will not be running the application on the PC where I build the application, therefore I want to be able to build the application on a remote PC that has not all the hardware installed. Once the application will be build it will be installed on the target PC that has all the hardware.
    How can I make the application builder to build the application event if the dll is not properly loaded? (the dll will be properly loaded on the target PC)
    I want to do this on LabView 5.1.1, any ideas?

    Some .dlls don't try to attach to the driver when loaded.
    I've worked with both and unfortuately, I've not figured out a way around this problem.
    You could possibly use the Conditional Disable structure around the dll calls so they would not be loaded unless you're in the runtime engine. But i've not tried this so I don't know for sure if it's possible.
    Anyone??
    Ed
    Ed Dickens - Certified LabVIEW Architect - DISTek Integration, Inc. - NI Certified Alliance Partner
    Using the Abort button to stop your VI is like using a tree to stop your car. It works, but there may be consequences.

  • How to pass multiple values from workbook to planning function ?

    Hi,
    I have created Planning function in Modeler and it has one parameter(Variable represents = Multiple single values).
    When executing the planning function by create planning seq. in the web template : I see value of variable store data like ...
        A.) input one value -> V1
        B.) input three values -> V1;V2;V3
    This function execute completely in web.
    However, I want to use the planning function in workbook(Excel).
    The value of variable can't input V1;V2;V3... I don't know how to pass multiple values from workbook to parameter(Multiple single values type) in planning function ?
    thank you.

    Hi,
    Please see the attached how to document (page no 16).
    <a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/f0881371-78a1-2910-f0b8-af3e184929be">how to</a>
    Hope this was helpful
    thanks

  • How can I find out which iTunes library my computer is using?

    I have a desktop Mac Mini at home that my wife uses and a MacBook Pro that I use at home and in the office.  I wanted to be able to access all the music we have on both machines from both machines, even when I am out and about and have no network connection for my MacBook Pro. So, I uploaded all the music we had on iTunes to Dropbox, and this now syncs on both computers.  So, whenever either of us adds music to iTunes, the songs are saved on both machines within the Music folder in Dropbox, which syncs in real time across both computers.  So far so good.
    However, what I am finding is that, when either of us adds new music to our respective iTunes, it only shows on the computer on which it's been added.  So, within a matter of weeks, our computers no longer show the same music in our respective iTunes windows, even though the music is present on both machines in the synchronised Dropbox folder.
    I realised that the computers must start using different iTunes library to each other when new songs are added to either machine.  So, I figured that, when we add music to one of the computers, if I pointed iTunes on the computer that has the less up-to-date music to the latest library that is being used by the computer with the more up-to-date music, this would ensure that both machines showed the same music in their repective iTunes windows.  The problem is that I cannot work out which iTunes library is being used by the computer with the more up-to-date music on it.  I know how to choose a different library when I open iTunes (hold down alt) but that doesn't help, because I all I want to do is to FIND OUT WHICH LIBRARY IS BEING USED BY ITUNES ON THE COMPUTER WITH THE MORE UP-TO-DATE MUSIC.  I simply can't find a way of getting iTunes to show me which library it is using, although this must be the simplest thing in the world. An additional issue is that I want to playlists we have created to appear on both machines - will that be the case if I point the less up-to-date iTunes (on my wife's Mac Mini) to the library of the more up-to-date iTunes (on my MacBook Pro), since my computer with the more up-to-date iTunes shows all the playlists, whereas my wife's doesn't?
    So, can anyone help?  Plus if anyone knows of any software that can automatically ensure that two different Macs both use the same and most up-to-date iTunes library and therefore always show the lastest music collection, whichever machine the music has been added to, that would be fantastic.  Thanks.

    You could have all the computers point to the same library but it can't be opened by more than one at any time.
    No answer for knowing which library is in use other than selecting it at startup.  This question gets asked here occasionally but I don't think it is a high-demand feature since most people have just one library.  I guess you could put in an empty playlist with the library name so you have an identifier.

  • How to integrate c# library's function to use F# type expression for function of function?

    i succeed to implement the initial prototype for function structure in c#
    but i do not know how to integrate in F#
    i make c# library's function to accept template T, for F# to pass type expression into it.
    but how to write in c# to make template like type expression, 
    in Addvaluetoeachitem
    hope make function structure depend on left or right, i got twisted in my mind when integrating into F#
    if translate c# into F# , how to write for this class?
    func1(func1(param1, param2), param2) etc
    if i define funcvalue as
    type expr =
    | And of expr * expr
    | Or of expr * expr
    expr[] funcvalues = new expr[] {And, Or, And, Or, And, Or, And}
    int[] values = new int[] { 1, 2, 3, 4, 5, 6, 7 };
    got some error when translate member value and constructor into F#
    // Learn more about F# at http://fsharp.net
    // See the 'F# Tutorial' project for more help.
    open System.Collections.Generic
    type expr =
    | And of expr * expr
    | Or of expr * expr
    | Param1
    type BinaryTree =
    let mutable value = 0
    let left : BinaryTree = null
    let right : BinaryTree = null
    let mutable dict : Dictionary<int, BinaryTree> = new Dictionary<int, BinaryTree>();
    member this.Load(tree : BinaryTree, values : int[], index : int) =
    this.value = values.[index];
    if index * 2 + 1 < values.Length then
    this.left = new BinaryTree(values, index * 2 + 1)
    if index * 2 + 2 < values.Length then
    this.right = new BinaryTree(values, index * 2 + 2)
    new() = BinaryTree(values : int[]) : this(values, 0) { }
    //public BinaryTree(int[] values) : this(values, 0) { }
    new() = BinaryTree(values : int[], index : int)
    let dict = new Dictionary<int, BinaryTree>()
    Load(this, values, index)
    member this.Visit(tree : BinaryTree) =
    dict.Add(dict.Count, tree);
    member this.ChangeToString(m : List<int>) : String =
    let result = "";
    for i in m do
    result = result + i.ToString()
    result
    member this.CopyList(queue : Queue<List<int>>) : Queue<List<int>> =
    let mutable newqueue : Queue<List<int>> = new Queue<List<int>>();
    if queue != null then
    while (queue.Count > 0) do
    let source : List<int> = queue.Dequeue()
    let destination : List<int> = new List<int>();
    for a in source do
    destination.Add(a);
    newqueue.Enqueue(destination)
    for m in newqueue do
    queue.Enqueue(m);
    newqueue
    member this.IsAscending(m : List<int>) : bool =
    let mutable result = true
    let mutable prev : int = 0
    for i in m do
    if prev > i then
    result <- false
    prev <- i
    result
    member this.Addvaluetoeachitem(queue : Queue<List<int>>, value : int, maxlimit : int, ref Dictionary<String , List<int>> allpath, Boolean IsBackUp, T func1, T param1, T param2, Dictionary<T, T> allfunctionstructure, Queue<List<T>> funcqueue, Boolean LeftOrRight) : Queue<List<int>>=
    let newqueue : Queue<List<int>> = new Queue<List<int>>()
    if queue != null then
    while queue.Count > 0 do
    List<int> path = queue.Dequeue();
    //List<T> func = funcqueue.Dequeue();
    let mutable afteradd = false
    if path.Count < maxlimit then
    path.Add(value);
    afteradd <- true
    if path.Count = maxlimit && afteradd = true && IsBackUp = false then
    if IsAscending(path) = true then
    if allpath.ContainsKey(ChangeToString(path)) = false then
    allpath.Add(ChangeToString(path), path)
    newqueue.Enqueue(path);
    if queue = null then
    let mutable path : List<int> = new List<int>();
    let mutable afteradd = false
    if path.Count < maxlimit then
    path.Add(value)
    afteradd <- true
    if path.Count == maxlimit && afteradd == true && IsBackUp = false then
    if IsAscending(path) = true then
    if allpath.ContainsKey(ChangeToString(path)) = false then
    allpath.Add(ChangeToString(path), path)
    newqueue.Enqueue(path)
    else
    if queue.Count = 0 then
    let mutable path : List<int> = new List<int>();
    let mutable afteradd = false
    if path.Count < maxlimit then
    path.Add(value)
    afteradd <- true
    if path.Count = maxlimit && afteradd = true && IsBackUp = false then
    if IsAscending(path) == true then
    if allpath.ContainsKey(ChangeToString(path)) = false then
    allpath.Add(ChangeToString(path), path)
    newqueue.Enqueue(path)
    newqueue
    member this.Deepfirst(tree : BinaryTree, ref queuepath : Queue<List<int>>, backpath : Queue<List<int>>, maxlimit : int, ref allpath : Dictionary<String, List<int>>, func1 : expr, param1 : expr, param2 : expr, allfunctionstructure : Dictionary<expr, expr>, ref queuefunc : Queue<List<expr>>, LeftOrRight : bool) : Queue<List<int>>=
    queuepath = Addvaluetoeachitem(queuepath, tree.value, maxlimit, ref allpath, false, func1, param1, param2, allfunctionstructure, queuefunc, LeftOrRight);
    //path.Add(tree.value);
    Queue<List<int>> newpath = new Queue<List<int>>();
    newpath = CopyList(queuepath);
    Queue<List<int>> newpath2 = new Queue<List<int>>();
    newpath2 = CopyList(queuepath);
    backpath = Addvaluetoeachitem(backpath, tree.value, maxlimit, ref allpath, false, func1, param1, param2, allfunctionstructure, queuefunc, LeftOrRight);
    //Queue<List<int>> backpathx = new Queue<List<int>>();
    Queue<List<int>> backpathx = backpath;//Addvaluetoeachitem(backpathx, tree.value, maxlimit, ref allpath, false);
    Queue<List<int>> newpathx = new Queue<List<int>>();
    newpathx = CopyList(queuepath);
    Queue<List<int>> backpath1 = backpathx;
    if tree.left != null then
    newpathx = Deepfirst(tree.left, ref newpath, newpathx, maxlimit, ref allpath, func1, param1, param2, allfunctionstructure, ref queuefunc, false) // Left
    if tree.value = 1 then
    Console.WriteLine("")
    Visit(tree)
    for m in queuepath do
    newpath2.Enqueue(m)
    let mutable backpath2 : Queue<List<int>> = newpathx
    if tree.right != null then
    newpathx = Deepfirst(tree.right, ref newpath2, newpathx, maxlimit, ref allpath, func1, param1, param2, allfunctionstructure, ref queuefunc, true) // Right
    if tree.value = 1 then
    Console.WriteLine("")
    if newpathx != null then
    return newpathx
    if backpath2 != null then
    return backpath2
    if backpath1 != null then
    return backpath1
    if backpath != null then
    return backpath
    else
    return backpath
    [<EntryPoint>]
    let main argv =
    printfn "%A" argv
    0 // return an integer exit code
    BinaryTree<int> b = new BinaryTree<int>(values);
    Queue<List<int>> queuepath = new Queue<List<int>>();
    Queue<List<int>> backpath = null;
    Queue<List<int>> queuefunc = new Queue<List<int>>();
    Dictionary<String, List<int>> allpath = new Dictionary<String, List<int>>();
    Dictionary<int, int> allfunctionstructure = new Dictionary<int, int>();
    int a3 = 0;
    int b3 = 0;
    int c3 = 0;
    queuepath = b.Deepfirst(b, ref queuepath, backpath, 3, ref allpath, a3, b3, c3, allfunctionstructure, ref queuefunc, false);
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    namespace testTable
    public class BinaryTree<T>
    public int value;
    BinaryTree<T> left;
    BinaryTree<T> right;
    public Dictionary<int, BinaryTree<T>> dict;
    public BinaryTree(int[] values) : this(values, 0) { }
    BinaryTree(int[] values, int index)
    dict = new Dictionary<int, BinaryTree<T>>();
    Load(this, values, index);
    public void Visit(BinaryTree<T> tree)
    dict.Add(dict.Count, tree);
    public String ChangeToString(List<int> m)
    String result = "";
    foreach (int i in m)
    result = result + i.ToString();
    return result;
    public Queue<List<int>> CopyList(Queue<List<int>> queue)
    Queue<List<int>> newqueue = new Queue<List<int>>();
    if (queue != null)
    while (queue.Count > 0)
    List<int> source = queue.Dequeue();
    List<int> destination = new List<int>();
    foreach (int a in source)
    destination.Add(a);
    newqueue.Enqueue(destination);
    foreach (List<int> m in newqueue)
    queue.Enqueue(m);
    return newqueue;
    public Boolean IsAscending(List<int> m)
    Boolean result = true;
    int prev = 0;
    foreach (int i in m)
    if (prev > i)
    result = false;
    prev = i;
    return result;
    public Queue<List<int>> Addvaluetoeachitem<T>(Queue<List<int>> queue, int value, int maxlimit, ref Dictionary<String , List<int>> allpath, Boolean IsBackUp, T func1, T param1, T param2, Dictionary<T, T> allfunctionstructure, Queue<List<T>> funcqueue, Boolean LeftOrRight)
    Queue<List<int>> newqueue = new Queue<List<int>>();
    if (queue != null)
    while (queue.Count > 0)
    List<int> path = queue.Dequeue();
    //List<T> func = funcqueue.Dequeue();
    Boolean afteradd = false;
    if (path.Count < maxlimit)
    path.Add(value);
    afteradd = true;
    if (path.Count == maxlimit && afteradd == true && IsBackUp == false)
    if( IsAscending(path) == true)
    if(allpath.ContainsKey(ChangeToString(path)) == false)
    allpath.Add(ChangeToString(path), path);
    newqueue.Enqueue(path);
    if (queue == null)
    List<int> path = new List<int>();
    Boolean afteradd = false;
    if (path.Count < maxlimit)
    path.Add(value);
    afteradd = true;
    if (path.Count == maxlimit && afteradd == true && IsBackUp == false)
    if (IsAscending(path) == true)
    if (allpath.ContainsKey(ChangeToString(path)) == false)
    allpath.Add(ChangeToString(path), path);
    newqueue.Enqueue(path);
    else
    if (queue.Count == 0)
    List<int> path = new List<int>();
    Boolean afteradd = false;
    if (path.Count < maxlimit)
    path.Add(value);
    afteradd = true;
    if (path.Count == maxlimit && afteradd == true && IsBackUp == false)
    if (IsAscending(path) == true)
    if (allpath.ContainsKey(ChangeToString(path)) == false)
    allpath.Add(ChangeToString(path), path);
    newqueue.Enqueue(path);
    return newqueue;
    public Queue<List<int>> Deepfirst(BinaryTree<T> tree, ref Queue<List<int>> queuepath, Queue<List<int>> backpath, int maxlimit, ref Dictionary<String, List<int>> allpath, T func1, T param1, T param2, Dictionary<T, T> allfunctionstructure, ref Queue<List<T>> queuefunc, Boolean LeftOrRight)
    //if (path.Count < maxlimit)
    queuepath = Addvaluetoeachitem(queuepath, tree.value, maxlimit, ref allpath, false, func1, param1, param2, allfunctionstructure, queuefunc, LeftOrRight);
    //path.Add(tree.value);
    Queue<List<int>> newpath = new Queue<List<int>>();
    newpath = CopyList(queuepath);
    Queue<List<int>> newpath2 = new Queue<List<int>>();
    newpath2 = CopyList(queuepath);
    backpath = Addvaluetoeachitem(backpath, tree.value, maxlimit, ref allpath, false, func1, param1, param2, allfunctionstructure, queuefunc, LeftOrRight);
    //Queue<List<int>> backpathx = new Queue<List<int>>();
    Queue<List<int>> backpathx = backpath;//Addvaluetoeachitem(backpathx, tree.value, maxlimit, ref allpath, false);
    Queue<List<int>> newpathx = new Queue<List<int>>();
    newpathx = CopyList(queuepath);
    Queue<List<int>> backpath1 = backpathx;
    if (tree.left != null)
    newpathx = Deepfirst(tree.left, ref newpath, newpathx, maxlimit, ref allpath, func1, param1, param2, allfunctionstructure, ref queuefunc, false); // Left
    if (tree.value == 1)
    Console.WriteLine("");
    Visit(tree);
    if (backpath1 != null)
    Boolean afteradd = false;
    if (backpath1.Count < maxlimit)
    backpath1.Add(tree.value);
    afteradd = true;
    if (backpath1.Count == maxlimit && afteradd == true)
    allpath.Add(backpath1);
    foreach (List<int> m in queuepath)
    newpath2.Enqueue(m);
    Queue<List<int>> backpath2 = newpathx;
    if (tree.right != null)
    newpathx = Deepfirst(tree.right, ref newpath2, newpathx, maxlimit, ref allpath, func1, param1, param2, allfunctionstructure, ref queuefunc, true); // Right
    if (tree.value == 1)
    Console.WriteLine("");
    //Queue<List<int>> newpath3 = new Queue<List<int>>();
    //newpath3 = CopyList(queuepath); // 2 -> 1 -> 3 1(2,3) difficult case
    //return newpath3;
    if (newpathx != null)
    return newpathx;
    if(backpath2 != null)
    return backpath2;
    if (backpath1 != null)
    return backpath1;
    if (backpath != null)
    return backpath;
    else
    return backpath;
    public void Load(BinaryTree<T> tree, int[] values, int index)
    this.value = values[index];
    if (index * 2 + 1 < values.Length)
    this.left = new BinaryTree<T>(values, index * 2 + 1);
    if (index * 2 + 2 < values.Length)
    this.right = new BinaryTree<T>(values, index * 2 + 2);
    computing nightmare

    This builds, and fixes the most egregious style issues
    open System
    open System.Collections.Generic
    type expr =
    | And of expr * expr
    | Or of expr * expr
    | Param1
    [<AllowNullLiteral>]
    type BinaryTree(values : int[], index : int) =
    let value = values.[index]
    let left = if index * 2 + 1 < values.Length then
    BinaryTree(values, index * 2 + 1)
    else null
    let right = if index * 2 + 2 < values.Length then
    BinaryTree(values, index * 2 + 2)
    else null
    let dict : Dictionary<int, BinaryTree> = new Dictionary<int, BinaryTree>();
    new(values : int[]) = BinaryTree(values, 0)
    member this.Value with get() = value
    member this.Left with get() = left
    member this.Right with get() = right
    member this.Visit(tree : BinaryTree) =
    dict.Add(dict.Count, tree);
    static member ChangeToString(m : List<int>) : String =
    String.Join(String.Empty, m)
    static member CopyList(queue : Queue<List<int>>) : Queue<List<int>> =
    let newqueue = Queue<List<int>>();
    if queue <> null then
    while (queue.Count > 0) do
    let source : List<int> = queue.Dequeue()
    let destination : List<int> = new List<int>();
    for a in source do
    destination.Add(a);
    newqueue.Enqueue(destination)
    for m in newqueue do
    queue.Enqueue(m);
    newqueue
    static member IsAscending(m : List<int>) : bool =
    m
    |> Seq.pairwise
    |> Seq.forall (fun (x,y) -> y > x)
    static member Addvaluetoeachitem(
    queue : Queue<List<int>>,
    value : int,
    maxlimit : int,
    allpath : Dictionary<String , List<int>> byref,
    isBackUp : Boolean,
    func1 : 'T,
    param1 : 'T,
    param2 : 'T,
    allfunctionstructure : Dictionary<'T, 'T>,
    funcqueue : Queue<List<'T>>,
    leftOrRight : Boolean) : Queue<List<int>>=
    let newqueue : Queue<List<int>> = new Queue<List<int>>()
    if queue <> null then
    while queue.Count > 0 do
    let path = queue.Dequeue();
    let afteradd = path.Count < maxlimit
    if afteradd then
    path.Add(value)
    if path.Count = maxlimit && afteradd && (not isBackUp) then
    if BinaryTree.IsAscending(path) then
    if allpath.ContainsKey(BinaryTree.ChangeToString(path)) = false then
    allpath.Add(BinaryTree.ChangeToString(path), path)
    newqueue.Enqueue(path);
    if (queue = null) || (queue.Count = 0) then
    let path = List<int>();
    let afteradd = path.Count < maxlimit
    if afteradd then
    path.Add(value)
    if path.Count = maxlimit && afteradd && (not isBackUp) then
    if BinaryTree.IsAscending(path) then
    if not <| allpath.ContainsKey(BinaryTree.ChangeToString(path)) then
    allpath.Add(BinaryTree.ChangeToString(path), path)
    newqueue.Enqueue(path)
    newqueue
    member this.Deepfirst(tree : BinaryTree,
    queuepath : Queue<List<int>> byref,
    backpath : Queue<List<int>> byref,
    maxlimit : int,
    allpath : Dictionary<String, List<int>> byref,
    func1 : expr, param1 : expr, param2 : expr,
    allfunctionstructure : Dictionary<expr, expr>,
    queuefunc : Queue<List<expr>> byref,
    leftOrRight : bool) : Queue<List<int>>=
    queuepath <- BinaryTree.Addvaluetoeachitem(queuepath, tree.Value, maxlimit, ref allpath, false, func1, param1, param2, allfunctionstructure, queuefunc, leftOrRight);
    let newpath = BinaryTree.CopyList(queuepath);
    let newpath2 = BinaryTree.CopyList(queuepath);
    backpath <- BinaryTree.Addvaluetoeachitem(backpath, tree.Value, maxlimit, ref allpath, false, func1, param1, param2, allfunctionstructure, queuefunc, leftOrRight);
    let backpathx = backpath;
    let mutable newpathx = BinaryTree.CopyList(queuepath);
    let backpath1 = backpathx;
    if tree.Left <> null then
    newpathx <- this.Deepfirst(tree.Left, ref newpath, ref newpathx, maxlimit, ref allpath, func1, param1, param2, allfunctionstructure, ref queuefunc, false) // Left
    if tree.Value = 1 then
    Console.WriteLine("")
    this.Visit(tree)
    for m in queuepath do
    newpath2.Enqueue(m)
    let backpath2 = newpathx
    if tree.Right <> null then
    newpathx <- this.Deepfirst(tree.Right, ref newpath2, ref newpathx, maxlimit, ref allpath, func1, param1, param2, allfunctionstructure, ref queuefunc, true) // Right
    if tree.Value = 1 then
    Console.WriteLine("")
    if newpathx <> null then
    newpathx
    else if backpath2 <> null then
    backpath2
    else if backpath1 <> null then
    backpath1
    else backpath

  • How to Communicate a string between LabView 7.0 and VB using TCP/IP

    HI
    I want to know how to communicate , " by passing a string  "  between LabView 7.1  and VB 6.0  using tcp/ip . Please if anyone couild help me on this..
    Regards
    Ashish Doshi

    Ashish,
    I've got great news for you! LabVIEW has built in TCP functions. They are located in Data Communication>>Protocols>>TCP. From the LabVIEW side, I think you'll find everything you need in there. Good luck!
    Chris C
    Chris Cilino
    National Instruments
    LabVIEW Product Marketing Manager
    Certified LabVIEW Architect

  • How to pass values to XML complex type of a Webservice using PL/SQL

    HI,
    I need to call a web service from PL/SQL that has an complex type element. That complex type element has 4 child elements each of integer type.
    I want to pass values for this complex type using SOAP_API.add_parameter but I can't understand how to pass the values.
    <xsd:element name="getBestFit">
              <xsd:complexType>
                   <xsd:sequence>
                        <xsd:element maxOccurs="1" minOccurs="1" name="circleId" type="xsd:string"/>
                        <xsd:element maxOccurs="1" minOccurs="1" name="usage" type="Q1:UsageInfoType"/>
                   </xsd:sequence>
              </xsd:complexType>
         </xsd:element>
    <complexType name="UsageInfoType">
         <sequence>
              <element maxOccurs="1" minOccurs="1" name="a1" type="int"/>
              <element maxOccurs="1" minOccurs="1" name="a2" type="int"/>
              <element maxOccurs="1" minOccurs="1" name="a3" type="int"/>
              <element maxOccurs="1" minOccurs="1" name="a4" type="int"/>
         </sequence>
    </complexType>
    Please help me in getting a solution here.
    Thanks in advance.

    Have you tried doing a google search on "SOAP_API.add_parameter" to see what comes back? I see a lot of hits come back so hopefully one of those will help you. I've never used soap_api as I used utl_http to make WS calls. This required me to build the SOAP message (aka XML of a specific nature) by hand and then pass it to the WS using utl_http. How this approach is done via SOAP_API, I can't say.

  • How to pass a parameter into execute sql task and later use it into dataflow task?

    i am in a situation, where i have a logging table in which i have a primary key called ETL_log_ID which is an identity column and acts as a foreign key for various fact table and dimension tables which are populated using SSIS packages. Now i wanna use the
    ETL_log_ID as a parameter in the execute sql task which populates the log table and pass the same value in the data flow task which populates the facts and dimension. Can you let me know how to pass the parameter in a step by step procedure.
    Thanks,
    Nikhil
      

    Nikhil,
    You can check the following :
    http://www.programmersedge.com/post/2013/03/05/ssis-execute-sql-task-mapping-parameters-and-result-sets.aspx
    http://stackoverflow.com/questions/7610491/how-to-pass-variable-as-a-parameter-in-execute-sql-task-ssis
    Regarding the usage in Dataflow task, Can you elaborate on that a little?
    Thanks,
    Jay
    <If the post was helpful mark as 'Helpful' and if the post answered your query, mark as 'Answered'>

  • How to pass multi value selection parameter to SAP Function Module?

    Hi ,
    Anyone know how to pass CR multi value parameter - array to SAP Function module ?
    eg  multi selection of customer in CR
    and then pass to Function module
    in SAP FM,  the SQL select these customer only
    How should the import parameter / table of SAP Function module designed?
    and how should CR pass the data to SAP FM
    thx
    John

    Moved to Integration Kit forum

  • How to pass default value of argument to stored function?

    Hi,
    in procedure I don't have to pass all arguments, because I set it with name, but in stored function I have to set arguments with index som I must set all arguments. Some arguments have default value. So how to pass default value?
    thx for any comments

    It really helps me if someone tell me that it isn't possiblle.
    thx.

  • How do you get points on skype to call someone?

    How do you earn points to call someone on Skype?>

    You can get points by answering other community member's questions. You can receive reputation points when another community member marks you response as:
    helpful - 5 reputation points
    answers the members question - 10 reputation point
    There is also certain perks based on how many points you have
    Level     Points     Privilege
         1       0            
         2       150         Report posts
         3       500         Upload a custom avatar
         4       1,000      Attend conference calls
         5       4,000      Create User Tips
         6       8,000      Access the virtual MVP lounge. Attend in-person Communities meet ups.
         7       20,000
         8       35,000
         9       50,000
         10     80,000+

Maybe you are looking for

  • Installing Oracle 10g Express Edition on Red Hat Linux

    Hi, I am new with Linux Os and have to install oracle 10g Express Edition on Red Hat Linux Os for a customer. So before proceeding, I need some guidelines. 1) which Linux(freeware) flavor should I install ? 2) is there any virtual enviornment availab

  • Problem executing .jar file

    My program was runnable before by executing the jar file and it doesn't work for some reason now. My manifest file is shown below. The error it gives is "Can't find main class, program will exit". Have I declared my main class wrong or something? It

  • SAP Vendor Master Communication Details for SMART FORM Printing.

    Hi Could you please advice Functional module to extract SAP Vendor Master Communication Details for SMART FORM Printing. Thanks in Advance. Regards Ravi

  • I broke my screen and i want to reset my ipod but it has a passcode on it

    i need to know how to reset my ipod touch without entering the passcode on the ipod first.

  • Error code - Exit Code:34

    Hi, I use win7 home premium 64bits with 8Gb ram, When I download the AI CS6 trial version to install in my computer, error Exit code:34 appear. I search the web and found some solve method for unload all my previous version CS5 AI, photoshop and drea