Wat is early binding and late binding

1)Class A {
Public void amethod(){
System.out.println(�amethod�);
class B extends A{
public static void main(String args[]){
B b = new B();
b.amethod();
if I run amethod will be printed on the console;
in the class A if i replace public class with private modifier;then I don�t compile class B and I run directly what will happen?
What is late binding and early binding?

What is late binding and early binding?Suppose you have two objects iA and sB, where iA is an Integer object and sB is a String object. If you were to assign them to one another, this would result in a compile time error. This is because the compiler checks if the objects 'bind' with each other. This is early binding.
Take another case where you have two custom objects (A & B) implementing the same interface. you pass an one of the objects (say A) to a method which accepts the implemented interface as a parameter and try to work with it as if it were to be the other (ie B) the compiler passes this since syntactically this is correct. But when it comes to runtime, the runtime env will get to know that this is illegal and throws an exception. This is a typical case of late binding.

Similar Messages

  • Early and late binding workflows in ICC based color management

    Hi all!
    I'm a graphic design student at Reading Uni in the UK, and I'm writing my BA dissertation on early and late binding workflows in ICC based color management for print production. I'm intending to write to a graphic designer audience from a designer's point of view. Please do comment here if you have anything to say on this topic, or you can point me to the right direction. I'm also looking for studios where I could conduct my case studies who employ early, medium or late binding workflows.
    Thank you.

    Will your paper have a title like  "Color Management is Fun and Easy" or "The Fiasco of Color Management"?
    Notice that in the past week you and I are the only posts on this forum! This is the Color Management forum on Adobe's website. Shouldn't it be really busy?
    It appears, that even after nearly ten years  I can't remember when color management first began to appear in prepress software), the industry has not embraced color management.
    The promise of color management since I can remember was  that we could make color documents and not need to know how they would be printed. In other words a late binding workflow; that latest possible, just before making the plates or screens or engravings, etc. After forty hours of reading on the net and testing I am almost positive this is impossible if Illustrator is in the workflow.
    Illustrator documents must be either RGB or CMYK not both. So if there are any colors that need to be preserved as CMYK (like 100 K black) you must work in CMYK meaning a mid binding color management workflow. The only thing I can think of is to find, or make, the widest gamut CMYK profile so that the fewest colors are hacked off.
    But really how can this all be so messed up? What good reason could Adobe have for doing this? (I can think of several but they all contridict themselves.)
    I preped some files the other day that were going to a printer I wasn't familiar with; one of the premium houses here in my area. I called them and asked how they wanted the files sent to them. I was hoping they had profiles for me or would spec some kind of PDF/x document that they would handle. No they wanted the source files and when I asked do you want the images in RGB then said, "No." So I asked which profile did they want me to use to convert to CMYK and the answer was, "What do you mean?" I said which CMYK do you want? The answer was, "The one everybody uses." I used SWOP and sighed.
    IF I'M WRONG I would love to hear about it.
    Good luck

  • Getting "Ordinal binding and Named binding cannot be combined" error

    Hello,
    I am getting following exception while calling stored produre:
    *"Ordinal binding and Named binding cannot be combined"*
    I am calling stored procedure with JDBC with 1 input parameter and 1 output parameters as mentioned below:
    CallableStatement collableStat = connection.prepareCall("{ call sp_clnt_intermed_validation(?,?) };
    // Registering In parameters          
    collableStat.setString("p_user_name", "SampleUser");                              
    // Registering Out parameters
    for(String paramKey : paramKeysSet) {                                   
    collableStat.registerOutParameter("p_success_flag", Types.VARCHAR);
    // execute stored procedure
    collableStat.execute();
    Please guide.
    Regards,
    Akshay.
    Edited by: 914678 on Feb 15, 2012 5:48 AM

    Why is the registerOutParameter in a loop?
    You don't state your DB version but as of 10g there is no support for named parameters for a PL/SQL function because there is no 'name' of the returned parameter. So use ordinal indexes for both parameters.
    Instead of
    collableStat.setString("p_user_name", "SampleUser");
    collableStat.registerOutParameter("p_success_flag", Types.VARCHAR);use
    collableStat.setString(1, "SampleUser");
    collableStat.registerOutParameter(2, Types.VARCHAR);Next time post this in the JDBC forum.
    Edited by: rp0428 on Feb 15, 2012 11:48 AM

  • Difference between Property binding, Aggregation Binding and Element binding?

    what is difference between Property binding, Aggregation Binding and Element binding?

    HI Rajesh,
    Firstly ,
    A binding path can either be absolute (starting with a slash), or relative (starting with a name token)
    1. Element Binding:
    Here we specify the refrenced object.
    eg if you bind company object to a layout, like
    var oMatrixLayout = new sap.ui.commons.layout.MatrixLayout();
    oMatrixLayout.bindElement("/company");
    then all the children of this layout can refer to the context of this object. like suppose company has name attribute, then we can directly pass it to the child like:
    oMatrixLayout.createRow(
    new sap.ui.commons.Label({text: "Name:"}),
    new sap.ui.commons.TextField({value: "{name}"})
    All the relative bindings within the control and all of its children are resolved relatively
    2. Property binding is similar to the context mapping in WebdnyPro. We bind it to a property of the UI. It is automatically updated when its vlaue is changed.
    3. Aggregation binding (basically a list) defines a template(a model which others can copy) and this template is cloned for each entry of the list. When we make an entry in the list, a clone of the template is created.When the clone is created, the context is set to the entry in the list. Thus all the binding to the template are resolved relative to the entry. This is maily used for large data sets where we will only clone the current entry and not the complete list.
    Regards,
    Nikhil

  • Adaptive WebService and late binding of nodes

    Hi,
    my Model has the folowing structure:
    Request
    -- out
    -- In (1..1)
    -- In -- Node1 (0..1)
    -- In -- Node1 --- MandatoryField
    -- In -- Node2 (0..1)
    -- In -- Node2 --- MandatoryField
    -- In -- Node3 (0..1)
    -- In -- Node3 --- MandatoryField
    At least one of the nodes (1 - 3) must be filled when executing the request..
    Usually the initializing of the model is done in the wdDoInit. This will not work in this case, if a NodeX doesn't exist, MandatoryField doesn't exist and the execution fails.
    So I have to initialize and bind the nodes directly before the execution of the request..
    I'd tried different ways to create and bind a new NodeX, but nothing works for me. No data is tranfered to the WebService backend..
    Does soneone know how to solve this?
    TIA
      Thomas Paulsen

    Hallo Bertram
    The real problem:
    I don't know the data I have to store in the moment wdDoinit() is executed:
    Think about a child. A child has a mother and a father. All of them have a mandatory attribute "Name".
    Usually the mother is known, but the father...
    And a foundling?
    So the child node have a mandatory attribute "Name" and two optional nodes "Mother" and "Father". If they where known, they must have a name.
    It is easy to create values nodes in the context to allow entering the data in the UI.
    But when I initialize the model in the wdDoInit(), I don't know whether there will be entered one of the  parents name  or not. If I initialze the parent's nodes, I need values for the names, otherwise the execution of the save request fails.
    So my idea is to initialize the parent's nodes directly before executiing the request, not during wdDoInit(). This is the moment I know if those name values were entered or not.
    This is (a little bit simplified) my problem.
    (The real problem is the (in wsdl allowed and inside the model not supported ) inheritence.
    The nodes I can't initialize during wdDoInit() are storing attributes of the different inherited object types. 
    This is my workaround for this limitation.
    The structure,  optional/nillable Nodes with mandatory attributes, will not give any errors or  warnings during the creation of the model.
    It would be an error if it is impossible to handle this structure a runtime, so I think it's my fault. But I don't know how to handle this)
    Regards
      Thomas

  • Can I swap PSU between early 2005 and late 2005 G5 models?

    Hello all
    i have 2 broken Power Mac G5's and i am trying to swap the broken PSU from Machine 2(Quad with faulty processor) to Machine 1(Dual with broken PSU) - is anybody kind enough to advise if the PSU can be swapped between those 2 models?
    Machine 1): G5 2.7 DP (PCI-X) - early 2005, Model A1047, Serial: CK514H35RU4
    Machine 2): G5 Quad Core (2.5) - late 2005, Model A1117, Serial: CK54900PR70
    Many thanks
    Manuel

    The  Quad has a 1000 watt PSU for one thing, check the older one, I'm not sure but it might be 600 watts.

  • Com2java. early binding and JCOM WLS7

    All,
    I have been looking at the use of JCOM with WLS 7. Based around supplied examples,
    the com-to-java using zero client or late binding appears simple and worked reliably
    using entity and session beans, however I have been unable to produce an early bound
    com-to-java example or a java-to-com example. In the former case the VB client produces
    a GPF (General Protection Fault) when attempting retrieve the home interface of
    the targeted EJB and in the latter case com2java produced code which would not compile
    (even after following the note 076584 regarding the jintegra code). I am beginning
    to doubt the current release. Has anybody succeeded in building an early bound example
    or used com2java succesfully.
    Regards
    Chris

  • JCOM and wlserver 6.1 (Problem with native late binding)

    Hi,
    I have seen your message in bea group. I would like to ask you something, that
    one has stated that to run JCOM, needs only beahomelist file in bea directory
    no need of wlserver to the client side. But still I'm not able to run vb client
    using native late binding.
    Its clearly mentioned that in JCOM 6.1 native late binding is not possible
    without wlserver on the client pc. So, can you help me or suggest something for
    this. I want to run this code without installing the server on client. I want
    just jcom.jar, native bridge class file and weblogic.jar file to the client
    side.
    Thanks,
    Atit.

    Hi,
    I have seen your message in bea group. I would like to ask you something, that
    one has stated that to run JCOM, needs only beahomelist file in bea directory
    no need of wlserver to the client side. But still I'm not able to run vb client
    using native late binding.
    Its clearly mentioned that in JCOM 6.1 native late binding is not possible
    without wlserver on the client pc. So, can you help me or suggest something for
    this. I want to run this code without installing the server on client. I want
    just jcom.jar, native bridge class file and weblogic.jar file to the client
    side.
    Thanks,
    Atit.

  • Examples for Native Mode ( early or late binding)

    HI,
    Do you have examples of Native Mode programming model (for early or late
    binding )?
    thanks & Best Regards,
    Regina Schwartz
    BEA Israel Support
    Phone: 972-3-7535705
    Fax: 972-3-7517045
    e-mail: [email protected]

    HI,
    Do you have examples of Native Mode programming model (for early or late
    binding )?
    thanks & Best Regards,
    Regina Schwartz
    BEA Israel Support
    Phone: 972-3-7535705
    Fax: 972-3-7517045
    e-mail: [email protected]

  • Late binding and Frame accuracy

    We are using AMS late binding feature to switch audio channels (available over HTTP streaming), but at the same time we need InBufferSeek feature for frame accuracy seeking (available on RTMP protocol). Is there any way to work with both features over RTMP?

    Hi Juan,
    Currently late binding feature is not available for RTMP, it's only available for HTTP streaming.
    Thanks,
    Apurva

  • Late Binding Word Automation creates a document with an unresponsive Ribbon

    I have a .NET ActiveX COM object that is calling Word and adding a template for processing. This template will get some data and then add in a layout template which will create the final document with the data and layout.
    When it is all said and done, the Word document has all the data, however, when the user tries to access the ribbon (click on one of the tabs or an item in the visible ribbon), nothing happens (like it is disabled).  You can click into the document
    itself and if the document has bolded text or something like that the ribbon changes to reflect the changes in font. 
    The only way for the ribbon to become responsive is to either minimize and reshow Word or select another application and then back to Word.  This "unlocks" the ribbon and you can interact with it.
    I accidently left in a reference to Word 2010 when I was testing something and then the code I have worked.  I went back to late binding and removed the reference to Office 2010 and it does not work even though none of my code has changed.  The
    Word constants/enums I am using were already locally created and the methods I am using have the either no parameters or the appropriate parameters provided as far as I know.
    In the code snippet below, the line "officeApp.ActiveWindow.Activate()" is what worked with early binding to
    cause the ribbon to be responsive immediately and allow the use to interact with the ribbon with no additional steps.  With late binding nothing seems to work.
    Code snippet :
    Dim reportDocument As Object = Nothing
    Try
    officeApp = GetObject(, "Word.Application")
    usingExistingWord = True
    Catch exp As Exception
    'Not Ideal - would prefer not to rely on Exception handle to catch this
    If officeApp Is Nothing Then
    officeApp = CreateObject("Word.Application")
    End If
    End Try
    Try
    'Open process template
    templateDocument = officeApp.Documents.Add(Template:=ProcessTemplate)
    Catch exp As Exception
    Success = False
    If Not usingExistingWord Then
    officeApp = Nothing
    templateDocument = Nothing
    End If
    Throw exp
    End Try
    If templateDocument Is Nothing Then
    'The process template was not loaded/added properly, abort code
    If Not usingExistingWord Then
    officeApp.Quit()
    officeApp = Nothing
    End If
    Success = False
    Exit Sub
    End If
    'hide Word while the process template runs its code.
    officeApp.Visible = False
    Try
    officeApp.Run("RunReport", _parameters, reportDocument)
    Catch exp As Exception
    Success = False
    If officeApp IsNot Nothing Then
    If templateDocument IsNot Nothing Then
    templateDocument.Close(SaveChanges:=False)
    templateDocument = Nothing
    End If
    If Not usingExistingWord Then
    officeApp.Quit()
    End If
    officeApp = Nothing
    End If
    Throw exp
    End Try
    If Success Then
    Try
    If reportDocument IsNot Nothing Then
    reportDocument.Activate()
    End If
    officeApp.ActiveWindow.Activate()
    officeApp.Activate()
    officeApp.ActiveWindow.ToggleRibbon()
    officeApp.ActiveWindow.ToggleRibbon()
    Catch ex As Exception
    End Try
    End If
    'Done - close the process template
    templateDocument.Close(SaveChanges:=c_wdDoNotSaveChanges)
    End If
    Thanks in advance for any help you are able to provide!

    Hi gardmica,
    Thanks for the detail explaintation. However I still failed to reproduce the issue. Here is the code I tested:
    Public Class Class1
    Sub Main()
    Dim reportDocument As Object = Nothing
    Dim usingExistingWord As Boolean
    Dim officeApp As Object
    Dim templateDocument As Object
    Dim ProcessTemplate As String
    Dim Success As Boolean
    Dim c_wdDoNotSaveChanges As Boolean
    Success = True
    ProcessTemplate = "C:\Users\UserName\Desktop\ProcessAndLayoutTemplates\MailMerge Process XML.dot"
    Try
    officeApp = GetObject(, "Word.Application")
    usingExistingWord = True
    Catch exp As Exception
    'Not Ideal - would prefer not to rely on Exception handle to catch this
    If officeApp Is Nothing Then
    officeApp = CreateObject("Word.Application")
    End If
    End Try
    Try
    'Open process template
    templateDocument = officeApp.Documents.Add(Template:=ProcessTemplate)
    Catch exp As Exception
    Success = False
    If Not usingExistingWord Then
    officeApp = Nothing
    templateDocument = Nothing
    End If
    Throw exp
    End Try
    If templateDocument Is Nothing Then
    'The process template was not loaded/added properly, abort code
    If Not usingExistingWord Then
    officeApp.Quit()
    officeApp = Nothing
    End If
    Success = False
    Exit Sub
    End If
    'hide Word while the process template runs its code.
    officeApp.Visible = True
    Try
    'officeApp.Run("RunReport", _parameters, reportDocument)
    Catch exp As Exception
    Success = False
    If officeApp IsNot Nothing Then
    If templateDocument IsNot Nothing Then
    templateDocument.Close(SaveChanges:=False)
    templateDocument = Nothing
    End If
    If Not usingExistingWord Then
    officeApp.Quit()
    End If
    officeApp = Nothing
    End If
    Throw exp
    End Try
    If Success Then
    Try
    If reportDocument IsNot Nothing Then
    reportDocument.Activate()
    End If
    officeApp.ActiveWindow.Activate()
    officeApp.Activate()
    officeApp.ActiveWindow.ToggleRibbon()
    officeApp.ActiveWindow.ToggleRibbon()
    Catch ex As Exception
    End Try
    End If
    'Done - close the process template
    templateDocument.Close(SaveChanges:=c_wdDoNotSaveChanges)
    End Sub
    End Class
    Did I miss any step? Does the issue exist when you didn't run the "RunReport" macro?
    Also I notich that the template is working in a compatibilty mode, is it helpful that convert it via File->Info->Convert?
    Regards & Fei
    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.

  • Late Binding Error on CreateGraphics in DLL

    I have a DLL that is a very basic image management library.  To draw graphics I am using the following subroutine:
    Public Sub DrawImage(ByVal Surface As Object, ByVal Name As String, ByVal Position As Point, Optional Size As Point = Nothing)
                Try
                    If Images.ContainsKey(Name) Then
                        Dim g As Graphics = Surface.CreateGraphics
                        If Size.IsEmpty Then
                            g.DrawImage(Images(Name), Position)
                        Else
                            g.DrawImage(Images(Name), New Rectangle(Position.X, Position.Y, Size.X, Size.Y))
                        End If
                    End If
                Catch ex As Exception
                    MsgBox(ex.ToString)
                End Try
            End Sub
    Object passed as the surface is a PictureBox on the main form so that the image is drawn in the PictureBox.  It all works perfectly except when I try to use Option Strict On (which is my preference) in the DLL.  When I do this the Surface.CreateGraphics
    line gives me a late binding error.  I am very new to coding and have not been able to figure out a solution.  When similar errors have occurred I have been able to use DirectCast() to remove the error.  For my current situation I do not know
    how to apply the cast, if it is even possible.  Any help or suggestions?

    Hi,
     You should be doing this one of two ways. One is to declare Surface as a Graphics type in the sub like below. This is the way i would recommend doing it.
     You will also notice that the last parameter is not Optional any more and is renamed to something other than Size and is changed to a Size Type. The name Size is the name of the Drawing Size structure so you need to use a different name. Also because
    an Optional parameter is not able to use a Structure type which Size is, it can`t be Optional.
     You will also notice i changed the name of your sub to DrawMyImage. You really need to choose names that are not used for Classes, properties, and methods already. The DrawImage name is already used by the Graphics class.
        Public Sub DrawMyImage(ByVal Surface As Graphics, ByVal Name As String, ByVal Position As Point, ByVal DrawSize As Size)
            Try
                If Images.ContainsKey(Name) Then
                    'Dim g As Graphics = Surface.CreateGraphics
                    If Size.IsEmpty Then
                        Surface.DrawImage(Images(Name), Position)
                    Else
                        Surface.DrawImage(Images(Name), New Rectangle(Position.X, Position.Y, DrawSize.Width, DrawSize.Height))
                    End If
                End If
            Catch ex As Exception
                MsgBox(ex.ToString)
            End Try
        End Sub
     Then call your Function from within the PictureBox`s Paint event in the Form like this
    Public Class Form1
    Private DrawingClass As New NameOfYourClass
    Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
    Dim SomeLocation As New Point(10, 10)
    Dim SomeSize As New Size(100, 90)
    DrawingClass.DrawMyImage(e.Graphics, "Some Image Name", SomeLocation, SomeSize)
    End Sub
    End Class
     The other way would be to make the Surface parameter a PictureBox type and pass the PictureBox to the sub. I would also recommend not using the CreateGraphics method. If you really must do it like this then at least creat the graphics
    in a Using End Using block. A Graphics Object needs to be Disposed when you are done using it and this will take care of that for you.
    Public Sub DrawMyImage(ByVal Surface As PictureBox, ByVal Name As String, ByVal Position As Point, ByVal DrawSize As Size)
    Try
    If Images.ContainsKey(Name) Then
    Using g As Graphics = Graphics.FromHwnd(Surface.Handle)
    If Size.IsEmpty Then
    g.DrawImage(Images(Name), Position)
    Else
    g.DrawImage(Images(Name), New Rectangle(Position.X, Position.Y, DrawSize.Width, DrawSize.Height))
    End If
    End Using
    End If
    Catch ex As Exception
    MsgBox(ex.ToString)
    End Try
    End Sub
     Then you can call your sub from other places in the form than the Paint event like this. However, this will not be persistent doing it like this. Meaning if you draw the image and then move the form off the side of the screen, cover it with another form,
    or minimize it the image will be erased and not be redrawn again until you call the sub again.
    Public Class Form1
    Private DrawingClass As New NameOfYourClass
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim SomeLocation As New Point(10, 10)
    Dim SomeSize As New Size(100, 90)
    DrawingClass.DrawImage(PictureBox1, "Some Image Name", SomeLocation, SomeSize)
    End Sub
    End Class
    If you say it can`t be done then i`ll try it

  • IDcs2 late binding RGB to CMYK

    InDesign CS2 uses two document profiles, RGB & CMYK. I have been using a "late binding" workflow with an Epson R1800 "RGB" printer, letting InDesign convert to the Printer Profile.
    I was surprised I cannot use the RGB document space and let ID Determine Colors for the CMYK Printer Profile for a Phaser CMYK solid ink printer.
    For CMYK printers are my placed sRGB images converted to the CMYK working space of the InDesign file for output, or are they just passed through so I can still allow ID to Determine Colors for Printer Profile selected ?
    Does the same hold true for separations made to film or plates?
    Thanks, Mark
    Mac OS 10.4

    Mark,
    First, I work on a PC, so there may be some differences. I have sporadically had problems getting accurate color from IDCS2 when outputting to an RGB printer. I'm not sure why it happens, and nobody (including Adobe) has managed to explain what happens with RGB files sent to RGB devices. So, for that reason alone, I do not recommend using late binding workflows. I think it is an Adobe print engine issue, but they'd deny it no doubt, as they usually do. When the couldn't solve the problem, they just became "unavailable". In theory, when printing from IDCS2, the ID print engine will convert ALL document colors to your intended print space.
    If my final intent is a press or other CMYK based device, I always place CMYK images into ID. I soft proof my final output space while editing in Photoshop, which I trust a lot more than I do ID. By the way, I have not had any problem with CMYK files rendering incorrectly, so that seems to work fine.
    I don't have ID open right now, so I cannot answer some of your specific questions. For proofing on an RGB inkjet device, here is what I do.
    1. Create the entire document in the destination CMYK space, including all placed images. Make sure the ID document itself is set to the same CMYK workspace, and make sure the document blend space is set to CMYK.
    2. For proofing on an RGB inkjet, I first export to PDF, leaving color unchanged. Then I open the PDF in Acrobat and set up my print stream to have the correct printer profiles, etc.
    3. I usually send both the IDCS2 file and the PDF to my commercial printer. This way they have both, just in case there is an issue with the IDCS2 file. And I ALWAYS have them generate a color proof on their inkjet as a contract proof. I like to compare it to my inkjet proof to make sure everything is right.
    I hope this helps somewhat, though it doesn't take you in the exact direction you intended. I think Adobe still has work to do on their program, but perhaps this has been fixed in later releases of ID.
    Lou

  • Late binding

    hi,
    i'm interested in reading more about the ways different languages bind methods at run-time and was hoping ppl in this forum might be able to give some pointers.
    I think this comes down to enumerating the kind of ways the following statement can be interpreted in an OO environment (realize this is a little vague..)obj.method(param1, param2, param3);I've recently been told about a language called Dylan that resolves which method is called by the run-time type of parameters of the method, rather than the compile-time type. (maybe Smalltalk does it this way too?)
    I'm not sure when this would be useful and can see how you might go about achieving the same effect in java (i think a javaworld article solved a problem which was equivalent to the one argument case but can't find it at the moment).
    I'm also finding the terminology a little confusing - since there are phrases like
    1) polymorphic dispatch
    2) late binding
    3) parametric polymorphism (i was brought up to think of this as the ML feature whereby you can write a single type-safe Sort function for a list datatype - ie what seems to be generics in java)
    that i've seen applied to this area..
    thanks,
    asjf

    Take a look to the JMMF framework, it's
    an implementation of multi-polymorphism in Java.
    http://igm.univ-mlv.fr/~forax/works/jmmf/
    Else, smalltalk doesn't permit overloading thus
    it doesn't implements late-binding with respect to actual
    type of all arguments.
    The design pattern Visitor permit to this kind of polymorphism
    with one parameter and could be generalized with more parameters
    by performing one virtual call by argument.

  • Support for late binding

    I've created a couple of similar top-level VIs that make use of a number of common subVIs. In the interest of modularity, I'd like to place these common subVIs into some kind of a folder or library that is shared by the top-level VIs - so far, so good.
    Some of these shared subVIs refer to other subVIs that are separately and uniquely implemented for each of the top-level VIs. My original thought was that LabVIEW might use "late binding", when the top-level VI is loaded for execution, to resolve all of the subVI references, and thus pick up the correct uniquely-implemented subVIs for the particular top-level VI being loaded. However, observations have led me to believe that all of the subVI references are resolved statically, at compile time, and thus a shared subVI cannot refer to different subVIs depending on which top-level VI is running. And I can see that it makes sense that it needs to be this way, given the way that the LabVIEW development environment works.
    Consequently, it seems that shared subVIs need to be able to statically resolve any of their own subVI references to one specific implementation at compile time. Thus subVIs that cannot do this cannot be shared subVIs, even though they are otherwise identical in each of the top-level VI contexts. Separate identical copies of such subVIs will need to be maintained for each top-level VI.
    Do I have this approximately correct? Is there any way that this kind of "late binding" can be supported in LabVIEW?
    Solved!
    Go to Solution.

    There are two ways you could make this work; you'll have to determine which one is appropriate for your situation. The first is to use VI reference for the specific instance you want. Inside the generic subVI you use a Call By Reference to call the VI that was passed in. Several of the VIs supplied with LabVIEW demonstrate how this works, for example take a look at "Constrained Non-linear Optimization" under the Mathematics->Optimization palette. You'll see that one of the terminals is are reference to a VI that implements the function to be optimized.
    Another possible solution is to use the dynamic dispatch capabilities of LabVIEW's Object-Oriented Programming. In this case, your library would implement a class. The specific instance you want to call would inherit from that class and define a specific VI that overrides the version in the generic library. When a VI in the library calls the subVI, it will dynamically dispatch to the child method, if the object is of the child class and the child method exists.

Maybe you are looking for

  • While loop is not working properly

    Dear all, I have a procedure which takes data form other tables and fill one table. See partial code DECLARE --  WELLS CURSOR c_well IS SELECT * FROM   well where well_s = 3419740 -- Welltest CURSOR c_welltest ( v_well_s NUMBER ) IS SELECT * FROM   w

  • Photoshop CS Upgrade and Windows 7

    Hi, I recently purchases a new laptop that has Windows 7 Professional 64 bit, I own Photoshop CS Upgrade that I previously ran on Windows Vista based machine.  I was able to install my CS upgrade on the Vista machine after first installing Photoshop

  • ACS 5.0 issue

    Hello, Is there any solution to configure Group mapping under ACS version 5.0? Regards,

  • Dreamweaver CS3 and Mac OSX Leopard 10.5

    I did an Erase and Install of Mac OSX Leopard 10.5... so it's a clean install. I installed the Adobe Web Premium software (full, not upgrade). Dreamweaver has been CRASH city. Try to merge some tables... crash. Try to copy past a graphic from one pag

  • Continuous Data Logging with NI 9236 an cRIO 9076 with FPGA

    Hey all, i'm a beginner in LabVIEW/FPGA. My goal is it to continuous acquire and log data. I've a 9236, CH0 is connected to a strain gauge and the cRIO 9076. I've written a code and I see the incoming data on the FPGA.vi. On the Host.vi there is no o