|
Joined: Dec 2008
Posts: 1,515
Hoopy frood
|
OP
Hoopy frood
Joined: Dec 2008
Posts: 1,515 |
Hello,
i am using mIRC 7.17 win7 sp1 x64 , i have the mdx.dll and when i use the /dll -u command the dll does not unload from the mIRC, the $dll(0) returns 0 but when i try to remove the file said that is in use! but the $dll(0) returns 0.
- Thanks!
|
|
|
|
Joined: Oct 2003
Posts: 3,918
Hoopy frood
|
Hoopy frood
Joined: Oct 2003
Posts: 3,918 |
Does this happen for other dlls? If not, I'd say it's mdx.dll's fault.
Note that mdx.dll is not compatible with 7.x, so you should not use it. There have been many bug reports regarding the dll and 7.x. DCX is a good alternative.
- argv[0] on EFnet #mIRC - "Life is a pointer to an integer without a cast"
|
|
|
|
Joined: Dec 2008
Posts: 1,515
Hoopy frood
|
OP
Hoopy frood
Joined: Dec 2008
Posts: 1,515 |
DCX is good but to hard to use it, the problem is that the mdx.dll is in use but the mIRC does not reply that is in use when using the $dll(0) , when i echo $dll(0) returns 1 and when i use $dll(1) then the resaults is that i am using an other dll and not the mdx.dll but the other dll that the $dll(1) returns is not in use!
Last edited by westor; 04/03/11 01:47 PM.
|
|
|
|
Joined: Oct 2004
Posts: 8,330
Hoopy frood
|
Hoopy frood
Joined: Oct 2004
Posts: 8,330 |
DCX is not any more difficult to use than MDX. It is just different. If you're used to MDX, then you have to learn the differences in how DCX works. But that doesn't mean it is difficult to use. You would have just as much difficulty (or lack of it) learning to use either one if you've never used either before.
MDX is outdated and not updated. Even if some of it still works, much of it does not. You should avoid using it for new scripts. It probably won't take too many more mIRC versions before MDX is completely unusable. Switch to DCX if you need that kind of functionality. It won't take you that long to learn it.
As far as $dll(1) goes, you might not think that DLL is in use, but if it shows there, then it is. You might want to find out why.
Invision Support #Invision on irc.irchighway.net
|
|
|
|
Joined: Dec 2008
Posts: 1,515
Hoopy frood
|
OP
Hoopy frood
Joined: Dec 2008
Posts: 1,515 |
Check here see the image with an timer 0 0 $dll(0) output!
|
|
|
|
Joined: Oct 2003
Posts: 3,918
Hoopy frood
|
Hoopy frood
Joined: Oct 2003
Posts: 3,918 |
Your screenshot shows an active dialog that looks like it's using MDX-- meaning the dll is still "in use".
mIRC has unloaded the dll, but it is still resident in memory. This can happen for many reasons, including threaded code, an improper UnloadDll function, etc. This would be MDX's fault, not mIRC's. DLL developers have to be much more careful about how they interact with mIRC's API. mIRC cannot *force* a DLL to unload, it can only trust that the dll properly implements UnloadDll and cleans up as it should. It seems like MDX is returning the wrong value during unload, and/or not properly cleaning up. Since it's unmaintained, I don't think that's going to get fixed.
To elaborate, when you /dll -u a dll, mIRC calls UnloadDll() on the dll itself (see /help DLL Support). mIRC expects the function to do proper cleanup, ie. remove any threads, release resources... it then immediately unregisters the dll as being loaded. It can't verify that the dll is no longer running any extra threads and has completely removed itself from memory-- it has to assume that it did a proper cleanup. mIRC is reporting what it should, but MDX.dll is not properly unloading.
I bet if you close that dialog, you might be able to delete the dll-- assuming it properly shuts down at that point.
- argv[0] on EFnet #mIRC - "Life is a pointer to an integer without a cast"
|
|
|
|
Joined: Dec 2008
Posts: 1,515
Hoopy frood
|
OP
Hoopy frood
Joined: Dec 2008
Posts: 1,515 |
I have open the mdx.dll file and did not found anything about UnloadDll just LoadDll . this is the problem?
EDIT: Is there any way to delete this dll if it is in use? (command, or something else)
Last edited by westor; 05/03/11 05:54 PM.
|
|
|
|
Joined: Jul 2006
Posts: 4,185
Hoopy frood
|
Hoopy frood
Joined: Jul 2006
Posts: 4,185 |
If the dll has a problem when unloading, you need to close mirc to delete that dll
#mircscripting @ irc.swiftirc.net == the best mIRC help channel
|
|
|
|
Joined: Dec 2008
Posts: 1,515
Hoopy frood
|
OP
Hoopy frood
Joined: Dec 2008
Posts: 1,515 |
Do you know how can i add the UnloadDll into the mdx.dll ? anyway to do that? or if i send you the dll to do it?
- Thanks!
|
|
|
|
Joined: Jul 2006
Posts: 4,185
Hoopy frood
|
Hoopy frood
Joined: Jul 2006
Posts: 4,185 |
No, you cannot do that, a dll is the result of compiled source code, which you don't have. But tbh, I never heard about someone having a problem with unloading mdx.dll
#mircscripting @ irc.swiftirc.net == the best mIRC help channel
|
|
|
|
Joined: Oct 2004
Posts: 8,330
Hoopy frood
|
Hoopy frood
Joined: Oct 2004
Posts: 8,330 |
You know that you could learn DCX and make your script much more long lasting long before you are likely to figure out your problems with MDX.
Invision Support #Invision on irc.irchighway.net
|
|
|
|
Joined: Dec 2008
Posts: 1,515
Hoopy frood
|
OP
Hoopy frood
Joined: Dec 2008
Posts: 1,515 |
MDX does not appear to have any other problems except this. i found mdx very easy and very helpful. i know that DCX is better but for the simple mirc scripting language the MDX is more easy and has the basically items for an better creation dialog. the DCX is for these people that want to build a addon to get money. anyway i hope DragonZap will start again the MDX dll .
|
|
|
|
Joined: Oct 2004
Posts: 8,330
Hoopy frood
|
Hoopy frood
Joined: Oct 2004
Posts: 8,330 |
I think you might want to check into it more. MDX has many issues with new versions of mIRC. You've see at least one of them. If you want to browse the bugs forum for more, you'll find that there are multiple problems. MDX is very old. It is very unlikely to be started again. Especially when DCX does everything MDX does and more and is already kept updated.
DCX works fine for simple scripting. There is no reason that MDX would be better for simple scripting. DCX can be used for simple or complex work. It all depends on what you want out of it. It can also make a dialog just as well (or better). And your comment on it being just for people who want to make money.... really? DCX is very widely used and if you take a look, almost all scripts it is used in are free.
You can choose to ignore everyone who recommends that you use DCX, but it really is not a good choice to make. MDX *will* fail completely at some point in a future mIRC version because it is not kept updated. That means that any script you write with MDX will have to be rewritten using DCX or else be limited to only old versions of mIRC. Do you really want that? Or would you rather write the script with an updated DLL that will work for much longer so that you don't have to redo your script when the DLL stops working? It's up to you. But don't expect mIRC to cater to failings in MDX, which means your problem isn't going to be corrected by mIRC. You can keep the problem and maybe even find a workaround, or you can write a better script using a current DLL. Think about it before wasting more of your time trying to make MDX work. DCX is EASY to use and learn. Why not try it?
Invision Support #Invision on irc.irchighway.net
|
|
|
|
Joined: Dec 2008
Posts: 1,515
Hoopy frood
|
OP
Hoopy frood
Joined: Dec 2008
Posts: 1,515 |
I know that DCX is better but it is hard, If i wanna create a dialog with DCX i must do it manual but in MDX the difference is that it works in an mIRC dialog, is there any DCX Studio that i can create dialogs? no! but in mIRC there is the Dialog Studio that is very good until now! thats the reason i am working with the MDX dll!
Last edited by westor; 06/03/11 02:42 PM.
|
|
|
|
Joined: Jun 2003
Posts: 81
Babel fish
|
Babel fish
Joined: Jun 2003
Posts: 81 |
Ive used both MDX and DCX in many of my scripts and can safely say the DCX documentation is probably the best of any mIRC dll out there. Also from a programmers view the MDX approach of docking on normal mIRC controls together with having to parse special access lines is just plain ugly. And if your dialogs are really so huge that a GUI editor is actually useful, of course theres a pretty decent (scripted) one for DCX too.
|
|
|
|
Joined: Sep 2005
Posts: 2,881
Hoopy frood
|
Hoopy frood
Joined: Sep 2005
Posts: 2,881 |
I don't think you've looked into DCX properly because the syntax for DCX is very similar to mIRC's own dialogs, making it much easier to use than MDX. mIRC: /did -a mydialog 1 my text DCX: /xdid -a mydialog 1 my text Edit: Yes there is a DCX studio here.
Last edited by hixxy; 06/03/11 09:52 PM.
|
|
|
|
|