Wireshark-dev: Re: [Wireshark-dev] Issue loading a new plugin
From: Ulf Lamping <ulf.lamping@xxxxxx>
Date: Thu, 29 Jan 2009 02:12:22 +0100
Heude Pascal schrieb:
Hello Jim,

Do you try to build the whole wireshark or only to build your dll ?
I had this problem on some windows version and I solved it by building the whole wireshark. But I still do not know why !

Pascal

James Gallogly a écrit :
I am trying to develop a Wireshark plugin and am starting at the most
basic level. I followed the instructions in the dev guide to create a
basic dissector, basically copy and pasted 9.2.1 and changed foo to ccs. I
used agentx MakeFiles as an example.

I am developing on Windows using Visual Studio 2005. I have no problem
building the project or my plugin using the nmake utility. However when I
copy my plugin dll into the plugins/1.0.5 directory and execute Wireshark
I get the following message.

"Couldn't load module C:\Program Files\Wireshark\plugins\1.0.5\ccs.dll:
The Specified module could not be found."

Any ideas what I might be doing wrong here?


Hi!

This is the tricky part of the current Microsoft compiler toolchain :-(

As I've written most part of the Developer's Guide in that regard, I'm still not satisfied with it's current state regarding the new Studios (>V6). But I need some feedback, so please give detailed response :-)


Unfortunately, you didn't noticed if you tried to run your plugin on the same (developer) machine where you've build it or on a different target machine.

Two possible causes (at least I know of):
1) missing manifest infos
2) missing "C-Runtime "Redistributable" files"


1)
The most likely reason is that you need the manifest information. Have a look at your Makefile.nmake you're using to build the ccs plugin. If it doesn't contain a line like mt.exe (I'm certain it won't), you need to copy the generated file ccs.dll.manifest along with your plugin, otherwise it won't work.


2)
If you're trying to run it on a different target machine than your developer machine, this is often a problem due to the missing "C-Runtime "Redistributable" files" on the target machine. See: http://www.wireshark.org/docs/wsdg_html_chunked/ChToolsMSChain.html#id4715151

for details.


You can:

a) take the folder content of Microsoft.VC80.CRT (located somewhere in the Studio dir c:\program files\...) and put the *content* of that dir where the Wireshark.exe resides (or probably in the plugins dir, unsure of the right location - please try it out and give feedback) or b) install the redistributable pack as mentioned on the linked page above. Make sure you have the right pack, depending if your Studio you're using to build the Wireshark plugin has an installed SP1 or not (if you find a different version number in the manifest file than in the web page above, then *please* report it)

All in all, trying to run Wireshark plugins compiled with a different msvcr than Wireshark core *might* work or cause trouble. Please report success or strange behaviour ...



Regards, ULFL

P.S: Seems, that the plugin Makefile.nmake still don't contain the mt.exe call, we really need to change this! Any volounteers?