Announcement

Collapse

Looking for a User App or Add-On built by the NinjaTrader community?

Visit NinjaTrader EcoSystem and our free User App Share!

Have a question for the NinjaScript developer community? Open a new thread in our NinjaScript File Sharing Discussion Forum!
See more
See less

Partner 728x90

Collapse

COM Interface ?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    #16
    Originally posted by NinjaTrader_Ray View Post
    NTDirect.dll
    This is what I have found, including the evidence.

    1. NTDirect.dll is NOT a COM dll. Rather, it is an unmanaged dll (having no support for Classes). You can verify this by trying to add NTDirect.dll to a .Net C# or VB project and you will see that MS Visual Studio clearly tells you that NTDirect.dll is not a COM dll and therefore cannot be added as a reference. NTDirect.dll should be used if your ATI application is other than .Net. So, for example, if you were implementing your ATI thru eSignal, you would use NTDirect.dll.

    2. NinjaTrader.Client.dll is not a COM dll either. Rather, it is a (fully managed) .Net class library. You can verify this by adding NinjaTrader.Client.dll to a .Net C# or VB project and you will see that MS Visual Studio clearly tells you that NinjaTrader.Client.dll is a .Net dll (and NOT a COM dll). This is positive in that it means that NinjaTrader developers have apparently reingineered the ATI interface to be fully .Net compliant with managed code.

    3. So where is the COM dll? I am not sure it exists. At least I have not seen it and NT support has not given me a file name that turns out to be a COM dll. But with NinjaTrader.Client.dll, you wouldn't want to use a COM dll even if it did exist. The COM architecture was Microsoft's first attempt at implementing object-oriented software technology into their platforms. For legacy reasons, they provide for interoperability with older COM dlls to work with .Net. Based on the documentation in the NinjaTrader help file, the ATI is implemented with COM technology. However, I do not believe this is the case since NinjaTrader.Client.dll appears to be a fully native .Net class library.

    In my initial testing, NinjaTrader.Client.dll works quite well with both C# and VB.Net. NT Support recommends use of NTDirect.dll, saying that "the COM interface has some issues" but if your application is .Net then you have to jump thru hoops to get NTDirect.dll to work (the hoops include using .Net System.RunTime.InteropServices, which can get kind of messy. I don't know why anyone would want to do that unless NinjaTrader.Client.dll had some serious issues.)

    If anyone knows of specific issues with NinjaTrader.Client.dll, could you please advise as to what the issues are? I will be doing extensive testing on NinjaTrader.Client.dll in the VB environment and will post any issues that I find.

    Scott

    Comment


      #17
      Again: We recommend NOT messing around with NinjaTrader.Client.dll but use COM or DLL ATI as documented.

      Thanks for your understanding.

      Comment


        #18
        OK...it's your product so you must have good reasons. But please help me on the issue that NTDirect.dll is NOT a COM dll. Your response said to use "COM or DLL ATI". NTDirect.dll does not load into .Net as a COM dll. NTDirect.dll appears to be a regular unmanaged dll, so when you keep referring to COM, my simple mind tells me that there must be another DLL that supports COM (other than NTDirect.dll which, according to Microsoft's Visual Studio, is not a COM dll). If a COM dll exists, I would prefer to use it as opposed to to NTDirect.dll. Is there another dll besides NTDirect.dll?

        Comment


          #19
          a) please consult the vendor of your preferred development platform for how to access COM components. Here in my VS I see "NinjaTrader Client" in the list of system wide registered COM component -> any file considerations are irrelevant
          b) please see my post below: if your COM problems persist, I suggest accessing the NtDirect.dll as a plain DLL using .NET interop. Please consult the standard MS documentation for how to do that.

          Comment


            #20
            Thank you, that was the answer I was looking for. The bad news is that when I try to add the 'NinjaTrader Client' COM reference, MS Visual Studio responds with "A reference to 'NinjaTrader Client' could not be added. The ActiveX type library "....ninjatrader.client.tlb' was exported from a .NET assembly and cannot be added as a reference. Add a reference to the .NET assembly instead." Can you please advise what to do?

            Comment


              #21
              please see my post below: if your COM problems persist, I suggest accessing the NtDirect.dll as a plain DLL using .NET interop

              Comment


                #22
                How about providing a "Sample Reference" using NTDirect.dll in C#.net and VB.net?

                Comment


                  #23
                  Thanks for your suggestion. We'll add it to the list of future considerations.

                  Comment


                    #24
                    Here's a quickie application using C#.net

                    I know that NinjaTrader advocates using NTDirect.dll but I was never able to make it work correctly. I don't know anything about interop whatever.

                    This quick application uses a reference to NinjaTrader.Client.Dll
                    Attached Files

                    Comment


                      #25
                      Maybe this might help, too.

                      (outdated link removed by NinjaTrader Support)
                      Last edited by NinjaTrader_Manfred; 06-06-2022, 07:37 PM. Reason: outdated link

                      Comment

                      Latest Posts

                      Collapse

                      Topics Statistics Last Post
                      Started by DJ888, Yesterday, 06:09 PM
                      2 responses
                      9 views
                      0 likes
                      Last Post DJ888
                      by DJ888
                       
                      Started by jeronymite, 04-12-2024, 04:26 PM
                      3 responses
                      40 views
                      0 likes
                      Last Post jeronymite  
                      Started by bill2023, Today, 08:51 AM
                      2 responses
                      16 views
                      0 likes
                      Last Post bill2023  
                      Started by sidlercom80, 10-28-2023, 08:49 AM
                      167 responses
                      2,260 views
                      0 likes
                      Last Post jeronymite  
                      Started by warreng86, 11-10-2020, 02:04 PM
                      7 responses
                      1,362 views
                      0 likes
                      Last Post NinjaTrader_Manfred  
                      Working...
                      X