|IRC Nick||Time (GMT-7)||Message|
|muesli||08:09||hey guys, i've noticed that on windows after i installed my plugin and it's in use, the browsers lock the .dll file
which means i can't cleanly uninstall my software as long as a browser is running. i've tried to unregister it with regsvr32 /d - with mixed success
is there any clean / "official" way?
|George_||09:09||I have a question if someone can help me
I am trying to develope an ActiveX plugin to get user's system information . Will it be possible to do so with FireBreath ?
|emicastro||09:09||muesli: if you want to unregister your .dll execute regsvr32 /u <yourDLL>|
|muesli||09:09||emicastro: sorry, yeah, that's what i meant
emicastro: that should make browsers release the dll, even tho it's been used, no?
|emicastro||09:09||I don't really know...
all browsers has this behavior?
|muesli||09:09||at least ie, ff, chrome and opera|
|taxilian||09:09||muesli: yes, the official way to remove the old dll is to use an uninstaller that can flag it to be removed on the next reboot. There is no way to make the browser release the DLL|
|taxilian||09:09||your only other option would be to force all processes using it to close
that's just how windows works
|muesli||09:09||hm, so how to handle updates?
reboot before updating?
|taxilian||09:09||always use the version of your plugin in your filename
install the new file, flag the old to be deleted on reboot
|muesli||09:09||even tho a reinstall / repair would fail too, then
|taxilian||09:09||yes, that is true, but would you normally expect to be able to reinstall an application while it is running?|
|muesli||09:09||well, to the user that's not obvious
the plugin is only part of the software
and the software itself isn't running at the point
i can see this giving me a headache already ;-)
|taxilian||09:09||yeah. plugin install / upgrade is the single most painful part of dealing with plugins|
|muesli||09:09||on windows, heh
maybe one should rephrase it
windows is the single most painful part of dealing with plugins
|muesli||09:09||other than that it's been quite a joy to use firebreath, i must say|
there really isn't anything I can do about windows, I'm afraid =]
|muesli||09:09||oh heh, not complaining - i'm aware of it
i was just hoping to miss something obvious
in many ways i would have prefered a "you idiot, rtfm"
now i'm back to some weird nsis magic
|taxilian||09:09||that's your next mistake; if you must use NSIS, use it to wrap the MSI and make it look nicer
but an MSI will prevent many problems you can run into with plugin install
|JuanDaugherty||10:09||you're the presenter in the video tutorials?|
|JuanDaugherty||10:09||it does say you put them together, but in principle, the person speaking could have been somebody else
they above average, so congrats
|taxilian||10:09||and it might well have been better if it was :-P
heh. I think I rambled a bit too much, but it's surprisingly difficult to do a good video screencast for something like that
I really need to make some more
|JuanDaugherty||10:09||no probably not, in as much as you're also the principal author/developer|
|taxilian||10:09||and make new video tutorials since those are getting dated|
|JuanDaugherty||10:09||yeah, there was typical stuff that shouldn't have been in there but good enough|
|taxilian||10:09||if I were really going to do it right I would have scripted it instead of just sitting down and doing it
but then I probably wouldn't have done it :-P
|JuanDaugherty||10:09||you scripted it. Maybe you mean more tightly.|
|taxilian||10:09||I mean thought ahead of time exactly what I was going to do
and wrote out some of the dialog, etc
|JuanDaugherty||10:09||maybe it would have been a lot worse in that case
|taxilian||10:09||heh. possibly, but not if done well
I would never just straight read a script, but a better outline would have helped
just one of those interesting things =]
|JuanDaugherty||10:09||in principal, if you can do the written text sufficiently, the videos are unnecessary
updating the videos is comparatively onerous too
but in this case there was a gestalt conveyed by the video which the otherwise excellent documentation didn't convey
|taxilian||10:09||yeah; in some ways the video is easier to do since I can show what I'm talking about
in other ways it's much harder because I have to find a time when my kids won't be in the background :-P
(the kids, not the vids)
|icet402||16:09||In chrome on windows 7, my plugin is being loaded and displayed in the list of plugins, but I've confirmed that NP_Initialize is never called (it should be writing to a file but the write isn't happening). Why would NP_Initialize not get called, especially if chrome seems to recognize it?|
|reichi||16:09||i probably crashes
which would be catched by chrome
|icet402||16:09||crash before NP_Initialize?|
|reichi||16:09||(if it crashes before it finished initalizing)|
|icet402||16:09||is something else getting called before NP_Initialize?|
|reichi||16:09||i guess taxilian could tell you that ;)|
|taxilian||16:09||icet402: can you run regsvr32 on it?
technically dllmain is called before, but that's not likely it; most likely either A) your file you are trying to write to isn't writeable by the process, or B) the DLL isn't loading at all
|icet402||16:09||regsvr32 doesn't seem to work on my DLL|
|taxilian||16:09||that is your problem
the DLL doesn't load
you're missing dependent DLLs
|icet402||16:09||is that the only thing that would cause regsvr32 to fail on my plugin DLL? dependent DLLs missing?|
|taxilian||16:09||let's just say that 99% of hte time, that's it
dependency manager might help
|icet402||16:09||i've been looking into the DLL dependency. the only dependencies revealed by dependency walker are those that several sources say can be ignored
but i do have a third party DLL that is in the same directory as my plugin
seems that's not being found
that's the only thing that makes sense
is there a particular way to load that DLL to make sure the plugin dependency isn't broken?
|icet402||16:09||oh.. different tool?|
|taxilian||16:09||no, you're right
I wrote it wrong
|taxilian||16:09||DLLs in the same dir as the plugin sometimes aren't found|
|icet402||16:09||yes, i've been using that
do you know how best to make sure it's found?
|taxilian||16:09||the best way I've seen to solve it is to delayload that DLL and then call SetDllDirectory
but I have to get back to work