----- Original Message ----- 
From: "Robert May"
.
.
>
> A series of tests:
> Drop          - ok
> DropF         - fails
> AropF         - fails
> DropFi        - fails
> DropFile      - fails
> DropFiles     - fails
> DropX         - fails
> DropFx        - fails
> DropFilesx    - fails
> xDropFiles    - ok
> Win32::DropF  - fails
> Win32::xDropF - ok
>
> Appears to indicate that any module whose last component name starts
> with 'DropF' fails.

Except that you've stated that 'AropF' fails and 'DropX' fails. Or did you
mean to write that they are ok ?

> Interesting, but doesn't get me much closer to a
> solution.
>

True.

>
> So I took 2 dlls produced by the above process, both compiled and linked
> in the same way with gcc; one that works (DropX.dll) and one that
> doesn't (DropF.dll), and wrote a simple perl script to attempt to
> load them using LoadLibrary() directly (using Win32::LoadLibrary()).
> DropX.dll loads fine;  DropFiles.dll fails (returns '0' as a handle),
> but the LoadLibrary call does not SetLastError, resulting in any call to
> GetLastError returning 0;  0 is interpreted as NO_ERROR, hence the
> mis-leading error message from DynaLoader.
>

Yep  - I follow that.

> So this appears to be a mingw or windows api issue, and not a problem
> with DynaLoader.

Yes - I take "windows api issue" to mean "Windows98 issue and/or
mingw32-w32api issue"

>
> Now I just need to find out what the difference is between the 2 dll's.
>   MS's Dependency walker (Depends.exe, comes with the platform SDK)
> loads both fine, and doesn't reveal anything very useful, but a binary
> diff of the 2 files (which are, incidently, exactly the same size) shows
> areas of significant difference.  I have no idea if this is expected or
> not, but my gut feeling is that it is suspicious.
>
> Off to find a mingw forum/list.
>

You'll find MinGW mailing list subscription details at www.mingw.org
(somewhere). But it's hard to expect helpful answers from them because of
all the perl stuff that's involved in your test case. Better if you could
construct a test case that was pure C. But give it a try anyway (even if you
can't construct a pure C test case) - 'DropF' might mean something to
someone there.

You could just try updating your gcc-3.4.4 and also updating your
mingw32-w32api (assuming your current version is not the latest). My feeling
is that even if you do get an explanation (and I'm sceptical about that),
the solution will be to simply update anyway.

Cheers,
Rob

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

Reply via email to