Jump to content

Welcome to the new Traders Laboratory! Please bear with us as we finish the migration over the next few days. If you find any issues, want to leave feedback, get in touch with us, or offer suggestions please post to the Support forum here.

  • Welcome Guests

    Welcome. You are currently viewing the forum as a guest which does not give you access to all the great features at Traders Laboratory such as interacting with members, access to all forums, downloading attachments, and eligibility to win free giveaways. Registration is fast, simple and absolutely free. Create a FREE Traders Laboratory account here.

behr

Help Needed with Passing a Variable Name

Recommended Posts

I am new to EL and was hoping someone can direct me:

 

I am not sure how to pass the Variable name form EL in Multicharts to a DLL routine. I cant see any routine which gets the name.

for example if iam trying to call the following DLL from EL:

 

void __stdcall MyArraySort( IEasyLanguageObject* pELObj, char* MyArrayName ) // example form MC/TS SW dev kit

 

my easylanguage code is:

 

Function Code:

 

EXTERNAL: "example.dll", void, "MyArraySort", IEasyLanguageObject {self}, LPSTR {myArrayName};

 

variables: index(0);

 

arrays: myArray[11](0);

 

// fill array with some data

for index = 10 downto 1 begin myArray[index] = 10-index;end;

 

// call MyArraySort

MyArraySort( self, myArray);

 

 

with the above code i get the wrong argument type...

 

Thanks for the help

Behr

Share this post


Link to post
Share on other sites

tams

 

yes i have read the manual. It basicaly says to pass the variable.

obviously i am missing something as my EL code does compile. The DLL builds ok... as i have tested it with other routines...

 

behr

Share this post


Link to post
Share on other sites

This is the DLL Function Declaration Statement in EL.

 

Syntax:

DefineDLLFunc: “DLLNAME.DLL”, Return Type, “FunctionName”,

Parameters ;

 

Examples can be found in the EL Reference Guide in Chapter 4.

Share this post


Link to post
Share on other sites

ochie

 

The EasyLanguage Extension Software Development Kit states:

 

The EasyLanguage analysis technique that calls the DLL function must

declare the DLL function in an external statement. This requirement

applies to the DLL only if the DLL uses the SDK. This is not a

requirement of DLL’s that do not use the SDK. If the DLL does not use

the SDK then either the external reserved word or the legacy

reserved word DefineDLLFunc may be used to declare DLL functions.

 

I have tried it with the DefineDLLFunc and i get the same problem.

- compile error code:: incorrect argument type

 

behr

Share this post


Link to post
Share on other sites

behr,

 

Sorry but I haven't used the SDK so not sure there. I seem to vaguely remember running into an issue using LPSTR in the past but don't remember the circumstances. Maybe you can create a simple integer add call or something just to get the interface working.

Edited by ochie

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.