IRC Log Viewer » #firebreath » 2012-09-06

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
muesli 09:09 wow
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 gotcha
taxilian 09:09 problem solved
muesli 09:09 even tho a reinstall / repair would fail too, then
oh windows
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
taxilian 09:09 lol
muesli 09:09 other than that it's been quite a joy to use firebreath, i must say
taxilian 09:09 well good
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?
taxilian 10:09 yes
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
*they're
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
then
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
*principle
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
JuanDaugherty 10:09 sell em
:)
(the kids, not the vids)
taxilian 10:09 lol
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?
taxilian 16:09 dependency manager
icet402 16:09 oh.. different tool?
taxilian 16:09 sorry, walker
icet402 16:09 my bad
taxilian 16:09 no, you're right
I wrote it wrong
icet402 16:09 no problem
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
good luck