delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2009/07/01/06:21:29

X-Recipient: archive-cygwin AT delorie DOT com
X-SWARE-Spam-Status: No, hits=-2.4 required=5.0 tests=AWL,BAYES_00,SPF_PASS
X-Spam-Check-By: sourceware.org
Message-ID: <4A4B3B8A.9020800@gmail.com>
Date: Wed, 01 Jul 2009 11:33:46 +0100
From: Dave Korn <dave DOT korn DOT cygwin AT googlemail DOT com>
User-Agent: Thunderbird 2.0.0.17 (Windows/20080914)
MIME-Version: 1.0
To: cygwin AT cygwin DOT com
Subject: w32api funny
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

  I noticed this when we added StrStrI to setup.exe, and I forgot to bootstrap
the generated files; I got a bad exe that didn't work for me because it
imported StrStrIA from comctl32.dll (which was the next -l option in the
LDFLAGS), which - at least on w2k - doesn't actually export that function:

$ for x in /usr/lib/w32api/lib{comctl32,shell32,shlwapi}.a ; do echo $x; nm $x
| grep StrStrI  ;  done
/usr/lib/w32api/libcomctl32.a
00000000 T _StrStrIW AT 8
00000000 I __imp__StrStrIW AT 8
00000000 T _StrStrIA AT 8
00000000 I __imp__StrStrIA AT 8
/usr/lib/w32api/libshell32.a
00000000 T _StrStrIW AT 8
00000000 I __imp__StrStrIW AT 8
00000000 T _StrStrIA AT 8
00000000 I __imp__StrStrIA AT 8
/usr/lib/w32api/libshlwapi.a
00000000 T _StrStrIW AT 8
00000000 I __imp__StrStrIW AT 8
00000000 T _StrStrIA AT 8
00000000 I __imp__StrStrIA AT 8

$ cd $WINDIR/system32

$ for x in comctl32.dll shell32.dll shlwapi.dll ; do echo $x ; dumpbin
/exports $x | grep StrStrI ; done
comctl32.dll
shell32.dll
        403   AB 00117E97 StrStrIA
        404   AC 00117E9D StrStrIW
shlwapi.dll
        710   F4 0000F2B4 StrStrIA
        711   F5 00007E9E StrStrIW

  I checked on an XP system as well, and it's not exported from comctl32.dll
there either.  The definitions come from here:

/usr/src/w32api-3.13-1/lib/comctl32.def:125:StrStrIA AT 8
/usr/src/w32api-3.13-1/lib/comctl32.def:126:StrStrIW AT 8

and are present in CVS HEAD.

    cheers,
      DaveK

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019