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

  • mgbloomfield
    replied
    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

    Leave a comment:


  • mgbloomfield
    replied
    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

    Leave a comment:


  • NinjaTrader_Dierk
    replied
    Thanks for your suggestion. We'll add it to the list of future considerations.

    Leave a comment:


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

    Leave a comment:


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

    Leave a comment:


  • smasers
    replied
    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?

    Leave a comment:


  • NinjaTrader_Dierk
    replied
    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.

    Leave a comment:


  • smasers
    replied
    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?

    Leave a comment:


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

    Thanks for your understanding.

    Leave a comment:


  • smasers
    replied
    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

    Leave a comment:


  • NinjaTrader_Ray
    replied
    NTDirect.dll

    Leave a comment:


  • smasers
    replied
    You have never answered my question., and I cannot understand why not..what is the .dll file name of the COM interface? If you respond NinjaTrader.Client.dll, then why did you not respond to my earlier question that this .dll is COM as opposed to managed code?
    Last edited by smasers; 04-17-2008, 11:16 PM.

    Leave a comment:


  • NinjaTrader_Dierk
    replied
    Please see my post #4 below. We only support the DLL and COM interface as documented.

    Thanks for your understanding.

    Leave a comment:


  • smasers
    replied
    Originally posted by NinjaTrader_Dierk View Post
    Unfortunately we are unable to provide information beyond my previous post and in particular about the NinjaTrader.Client.dll.

    Thanks for your understanding.
    Sorry, NO I do NOT understand. You cannot tell your client base simply whether or not NinjaTrader.Client.dll is a COM interface or .Net Managed Code??? You must be kidding! Please advise.

    Leave a comment:


  • NinjaTrader_Dierk
    replied
    Unfortunately we are unable to provide information beyond my previous post and in particular about the NinjaTrader.Client.dll.

    Thanks for your understanding.

    Leave a comment:

Latest Posts

Collapse

Topics Statistics Last Post
Started by geotrades1, Today, 10:02 AM
1 response
5 views
0 likes
Last Post NinjaTrader_BrandonH  
Started by ender_wiggum, Today, 09:50 AM
1 response
5 views
0 likes
Last Post NinjaTrader_Gaby  
Started by rajendrasubedi2023, Today, 09:50 AM
1 response
12 views
0 likes
Last Post NinjaTrader_BrandonH  
Started by bmartz, Today, 09:30 AM
1 response
10 views
0 likes
Last Post NinjaTrader_Erick  
Started by geddyisodin, Today, 05:20 AM
3 responses
27 views
0 likes
Last Post NinjaTrader_Gaby  
Working...
X