Wireshark-dev: Re: [Wireshark-dev] Problem loading custom DLL with standard Wireshark distribut
From: Ulf Lamping <ulf.lamping@xxxxxx>
Reply-To: Developer support list for Wireshark
<wireshark-dev@xxxxxxxxxxxxx>
To: Developer support list for Wireshark <wireshark-dev@xxxxxxxxxxxxx>
Subject: Re: [Wireshark-dev] Problem loading custom DLL with standard
Wireshark distribution
Date: Tue, 13 Feb 2007 21:05:04 +0100
Chris Delaney wrote:
> Hello,
>
> I am having a problem loading my custom dissector plugin .dll with the
> standard distribution of Wireshark 0.99.5. I checked out the source
tree
> (0.99.5) via Subversion and was able to successfully build the Wireshark
> executables along with my plugin .dll. When running the version that I
> built, my plugin loads fine and the dissector operates as expected.
> However, if I download the standard (binary) version of Wireshark
0.99.5,
> after installing and copying my plugin .dll to the .../plugins/0.99.5
> directory I get the infamous:
>
> Couldn't load module <path>\xxx.dll: The specified module could not be
found
>
> I'm guessing that I am not providing the correct build options for the
.dll,
> but cannot seem to find which one. I also tried to copy a .dll of one
of
> the standard plugins (ciscosm) that I built to the plugins directory of
the
> standard distribution and that failed as well. So it does not seem to
be my
> particular plugin, but rather my build environment. Specifically:
>
> Microsoft Visual C++ 2005 Express Edition (version 2.0.50727)
> Microsoft Platform SDK for Windows Server 2003 R2
> Windows XP Professional SP 2
> Wireshark 0.99.5
>
>
Two things comes to mind:
- copy the xxx.dll.manifest file along with the dll (this is new with
Visual C++ version 8)
- install vcredist_x86.exe (if the machine running WS isn't the machine
where studio is installed)
Regards, ULFL
Thank you for the response. I tried both of your suggestions, but the
problem remains. The xxx.dll.manifest file was generated during the build,
but copying it to the .../plugins/0.99.5 directory did not allow the plugin
to be loaded. Also, the machine I am trying to run the WS distribution is
the same as where VC is installed, but I installed vcredist_x86.exe anyway
and again, the plugin failed to load.
One thing I did notice was that the .dll's included with the general
distribution require these .dll's:
libwireshark.dll
MSVCRT.dll
KERNEL32.dll
The .dll's that I create with MSVC05EE require these .dll's:
libwireshark.dll
MSVCR80.dll
KERNEL32.dll
I have the C runtime library MSVCRT.dll in my system32 directory, but I do
not have MSVCR80.dll anywhere within my library path, despite having
installed vcredist_x86.exe, and MSVC05EE. After I copied MSVCR80.dll into
my system32 directory, the error message changed:
From:
Couldn't load module <path>\xxx.dll: The specified module could not be
found.
To:
Couldn't load module <path>\xxx.dll: The specified procedure could not be
found.
So it seems that the MS C Runtime Library is at fault here, but I still
can't seem to nail down the issue. Is there a dependency that .dll's
compiled with MSVC05EE are not compatible with a .exe compiled with MSVC06?
Thanks again,
Chris
_________________________________________________________________
From predictions to trailers, check out the MSN Entertainment Guide to the
Academy Awards®
http://movies.msn.com/movies/oscars2007/?icid=ncoscartagline1