Hello, I am trying to write my own wireshark plugin. I need to use xml library. I modified Makefile.nmake, added all includes and lib files:
The dissector is a developed as a plugin and runs fine till I added the libxml2 library. After adding libxml2 lib, my dissector is also compiling well, but when I add method which uses libxml2 library and run wireshark I am getting an error: " Couldn’t load module C:\EWireshark\EWireshark_clean\wireshark-gtk2\plugins\1.99.0\lsd.dll: .. “ What’s more I don’t even use this method anywhere in my plugin. It is only written and looks like that:
After commenting this method out my wireshark plugin works well. It seems that it is a problem with some libxml2 dependencies, but I have no idea what more should I add to Makefile.nmake to fix this problem. Is there anything to debug this, or does somebody know what I am doing wrong? asked 08 Sep ‘14, 02:27 Magda Nowak-… edited 08 Sep ‘14, 07:46 |
2 Answers:
On Windows, explicit DLL dependencies must be satisfied at load time from the DLL search path, which isn't the same as the command path. The error you've reported is symptomatic of an unmet dependency. To fix it you will have to copy (or ensure nmake copies) the dependant DLLs somewhere on the DLL search path, the location of your plugin DLL in the 'run' directly is suitable. To work out the DLLs required (you many need more than one) you can either copy each one in turn as indicated by the error, or use a tool such as 'depends' to list all the dependencies. The libxml docs might also have more on any dependencies. answered 08 Sep '14, 13:00 grahamb ♦ |
You will need to add these dlls into the directory in which you are running the executable for libxml2 to be loaded correctly: iconv.dll libxml2.dll answered 08 Sep '14, 18:16 Frankie |
thanks a lot ! iconv.dll was missing