Announcement

Collapse
No announcement yet.

Calling DLL functions from EFS in eSignal 11

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

  • Calling DLL functions from EFS in eSignal 11

    Hi, I am trying to port and old function that works well in the previous version of eSignal. The function calls dll like the following: var d = new DLL( "c:/simpleDll.dll"); and I am getting the error: "Error: DLL: Absolute path for DLLs is not supported"
    However, if I remove the absolute path eSignal does not seem to be able to find the dll file. I have tried putting dll in different locations but to no avail. Could you please let me know how to call dll from EFS in eSignal 11

  • #2
    Re: Calling DLL functions from EFS in eSignal 11

    dimsh
    If no path is specified the dll must be located either in the same folder of the efs or in the FunctionLibrary folder.
    If instead a path is specified this must be to a subfolder of the folder containing the efs or to a subfolder of the FunctionLibrary folder. In this case the specified path must be relative to the folder containing the efs or to the FunctionLibrary folder. Absolute paths cannot be used.
    Alex


    Originally posted by dimsh
    Hi, I am trying to port and old function that works well in the previous version of eSignal. The function calls dll like the following: var d = new DLL( "c:/simpleDll.dll"); and I am getting the error: "Error: DLL: Absolute path for DLLs is not supported"
    However, if I remove the absolute path eSignal does not seem to be able to find the dll file. I have tried putting dll in different locations but to no avail. Could you please let me know how to call dll from EFS in eSignal 11

    Comment


    • #3
      Alex,

      I tried what you suggested (putting the DLL in both locations actually) and I still get the error:

      "line 1: Error: DLL: Can not find DLL(ESignalFunctionsx64.dll)"

      Keep in mind, my dll is actually named ESignalFunctions.dll , so I'm not sure why esignal 11 is adding x64 to my dll name.

      This is on my line 1:

      var cDll = new DLL("ESignalFunctions.dll");

      It would be really nice if there was some documentation to say how its supposed to work. I'm forced to use version 10 until this is fixed, because my DLL works fine in it.

      Comment


      • #4
        dancclark
        If you are running a 64bit OS you need to add x64 at the end of the dll file name (eg ESignalFunctionsx64.dll) but not in your dll call (eg new DLL("ESignalFunctions.dll")). Also the dll needs to be 64bit as the 32bit will not work
        Alex


        Originally posted by dancclark
        Alex,

        I tried what you suggested (putting the DLL in both locations actually) and I still get the error:

        "line 1: Error: DLL: Can not find DLL(ESignalFunctionsx64.dll)"

        Keep in mind, my dll is actually named ESignalFunctions.dll , so I'm not sure why esignal 11 is adding x64 to my dll name.

        This is on my line 1:

        var cDll = new DLL("ESignalFunctions.dll");

        It would be really nice if there was some documentation to say how its supposed to work. I'm forced to use version 10 until this is fixed, because my DLL works fine in it.

        Comment


        • #5
          Hi Alex,

          I have tried all of your suggestions, but nothing seems to help. Below is the list of what I have tried:

          1) Compiled my dll for 64x processor
          2) Placed dll called simpleDllx64.dll into ALL possible folders including
          - All eSignal folders in the Program Files->Interactive Data
          -All formula folders in the Documents->Interactive Data

          3) Called function with the following code:
          var d = new DLL( "simpleDll.dll");
          d.addFunction("OpenBrowser1", DLL.INT, DLL.CDECL, "OpenBrowserC", DLL.STRING);
          var retVal;
          retVal = d.call( "OpenBrowser1", getSymbol() );

          I am still getting this message:
          C:/Users/Ben/Documents/Interactive Data/Formulas/My Formulas/OpenMorningStar.efs, line 3: Error: DLL: Can not find DLL(simpleDllx64.dll)

          To me it looks like a bug in eSignal, is there anyone who has been able to successfully call dll from eSignal 11.1?

          Comment


          • #6
            Hi dimsh,
            put the dll file in user/documents/Interactive Data/functions library. it will work.

            Comment

            Working...
            X