On Thu, 07 May 2009, Sisyphus wrote:
> From: "Jan Dubois" <j...@activestate.com>
> 
> Note that I'm not actually building XML-LibXML-Common with VC 8. I'm using
> the Platform SDK, Windows Server 2003 R2 compiler. It's just that I'm
> linking against dynamic xml2 and iconv libraries that were built with VC 8.

Are you sure you are dynamically linking against xml2 and iconv libraries?
In that case there would be no need for your DLL to contain the manifest;
only the xml2 and iconv2 libraries themselves would have to embed it.

I suspect that you are statically linking against some code that has been
compiled with VC8, so you'll have a direct reference to MSVCR80.dll in
you DLL.

You can check with depends.exe, dumpbin.exe, or simply

    link /dump /imports Common.dll

to see which external references you have.  If you have a reference to
MSVCR80.dll then you did statically link some VC8 generated code.

> It all works fine, except for the runtime error. (There must surely be a way
> of resolving this without having to build the libraries using the SDK
> compiler.)
> 
> I did find a manifest file for an x86 Net::SSH2 dll, and I've tried to
> create a manifest file for Common.dll based on it. But I don't seem to be
> able to get it right. With my Common.dll.manifest file in place, I can then
> successfully run the mt.exe command, but 'nmake test' then outputs the
> error:
> 
> Can't load 'blib\arch/auto/XML/LibXML/Common/Common.dll' for module
> XML::LibXML:
> :Common: load_file:The application has failed to start because its
> side-by-side configuration is incorrect. Please see the application event
> log for more detail at C:/_64/perl1004/lib/DynaLoader.pm line 202.
>  at test.pl line 10

The minimum change for the Manifest would be to change the architecture
from "x86" to "amd64", but it is possible that the assembly version
number of MSVCR80.dll needs to be adjusted as well.  This is the main
point of having the manifest in the first place that you can select
a specific version of MSVCR80.dll from the assembly cache even if multiple
versions are installed side-by-side in %WINDIR%\\WinSxS.

Cheers,
-Jan

_______________________________________________
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to