• If this is your first visit, you will have to register before you can post. To view messages, please scroll below and select the forum that you would like to visits. Questions? Be sure to check out the Forum FAQ.


No announcement yet.

Partner 728x90


COM Interface ?

  • Filter
  • Time
  • Show
Clear All
new posts

    Originally posted by NinjaTrader_Ray View Post
    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.



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

      Thanks for your understanding.
      DierkNinjaTrader Customer Service


        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?


          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.
          DierkNinjaTrader Customer Service


            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?


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


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


                  Thanks for your suggestion. We'll add it to the list of future considerations.
                  DierkNinjaTrader Customer Service


                    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


                      Maybe this might help, too.



                      Latest Posts


                      Topics Statistics Last Post
                      Started by pstrusi, Today, 03:29 PM
                      2 responses
                      Last Post pstrusi
                      by pstrusi
                      Started by ntbone, Today, 03:06 PM
                      0 responses
                      Last Post ntbone
                      by ntbone
                      Started by AMATX, Today, 01:43 PM
                      2 responses
                      Last Post AMATX
                      by AMATX
                      Started by razeus, Today, 12:00 PM
                      4 responses
                      Last Post razeus
                      by razeus
                      Started by kitwit, Today, 09:47 AM
                      5 responses
                      Last Post NinjaTrader_PaulH