mIRC Home    About    Download    Register    News    Help

Print Thread
#45389 30/08/03 06:04 PM
Joined: Aug 2003
Posts: 2
E
essEnce Offline OP
Bowl of petunias
OP Offline
Bowl of petunias
E
Joined: Aug 2003
Posts: 2
I've written a DLL, which has been working to specification on mIRC 6.03, however I've only just moved to mIRC 6.1 and there's some irregularities with its behaviour.
Obviously checking the DLL code first, I noticed no issues that could cause issues during a version change.

Firstly, has DLL processing changed at all between these two versions, as I find mIRC 6.1 is not abiding by the the return codes sent from the DLL back to the program.

I.E. fill variable will return data from DLL or execute command.

If more information is required, I'll be more than happy to provide it.

-- essEnce

#45390 30/08/03 06:26 PM
Joined: Dec 2002
Posts: 2,985
Hoopy frood
Offline
Hoopy frood
Joined: Dec 2002
Posts: 2,985
As was learnt with nHTMLn.DLL, when major changes are made to mIRC's 'guts' there's every chance that DLL files, and sometiems script files will no longer work. It's just a matter of either altering the dll/script or finding someone who can.

#45391 01/09/03 06:00 PM
Joined: Aug 2003
Posts: 2
E
essEnce Offline OP
Bowl of petunias
OP Offline
Bowl of petunias
E
Joined: Aug 2003
Posts: 2
I can understand changing scripts from version to version for compatibility. I never thought invoking something external like a DLL call would cause a rewrite. I'm not sure what I'm supposed to rewrite(!)

The functions in the DLL follow the mIRC DLL guidelines, act upon the passed data and return either a variable or ask mIRC to execute a command directly.

The call is made in the following form:

Code:
/callDLL {
  set %dll_output $dll(dllname.dll, $1, $2-)
}


Where $1 would be the DLL function name, and $2- the parameters to pass.

In version 6.03, regardless of it the DLL function returns code 2 (execute command returned by DLL) or return code 3 (DLL has filled return data variable and should process it in some way - in this case set %dll_output with the result) tthe above mentioned aliases would handle both.

Now, with version 6.1 - it will not execute functions that return code 2, and those with return code there have phantom characters introduced into the output (!!)

Something definitely has changed, question is, was it intentional or is this one of those undocumented features?

-- essEnce

#45392 03/09/03 10:11 AM
Joined: Dec 2002
Posts: 5,514
Hoopy frood
Offline
Hoopy frood
Joined: Dec 2002
Posts: 5,514
This seems to be working fine for me. Are you sure that the routine in your DLL is actually being called? mIRC is now being compiled with Visual C++ .Net, so perhaps this has affected the calling convention. However as far as I can tell, the return values of 0 through 4 are triggering the correct response.


Link Copied to Clipboard