Mail Archives: cygwin/2003/10/14/17:11:00
Igor,
On Tue, 14 Oct 2003, Igor Pechtchanski wrote:
> On Tue, 14 Oct 2003, chris wrote:
>
> > -- Code begins --
> >
> > #include <shlobj.h>
> >
> > void fee (void) {
> > char *buf;
> > LPITEMIDLIST id;
> > SHGetPathFromIDList (id, buf);
> > }
> >
> > int main (int argc, char **argv)
> > {
> > return 0;
> > }
>
> Chris,
>
> I suspect that this hang might be happening while loading the DLL. Could
> you try to link your program with something like below and see if it still
> hangs, and what it outputs?
>
Yes, it still hangs when run under setup from explorer. No output from
the hung one, or when run stand alone in bash.
> If it doesn't hang, try renaming
> SHGetPathFromIDList below to something else (e.g., foo) that calls the
> real SHGetPathFromIDList, call foo() from your fee() above, and link your
> program against both test_dll.dll and SHLWAPI.DLL.
>
Well, I didn't link explicitly with SHLWAPI.DLL, but same here.
There will be no ouput unless main calls foo, right? Then, I still get a
hang under setup from explorer; no output. Stand alone in a shell, output
is:
DLL loaded: process attach
DLL loaded: thread attach
Segmentation fault (core dumped)
The SEGV is expected given the code is invalid anyway.
Nothing to see here... move along...
>
> -------------------------- BEGIN test_dll.c --------------------------
> #include <windows.h>
> #include <stdio.h>
> #include <shlobj.h>
>
> static FILE *output = NULL;
>
> void SHGetPathFromIDList(LPITEMIDLIST id, char *buf) {
> return;
> }
>
> BOOL WINAPI DllMain(HINSTANCE h, DWORD f, LPVOID r) {
> if (!output) output = stderr;
> fprintf (output, "DLL loaded: ");
> switch (f) {
> case DLL_PROCESS_ATTACH: fprintf (output, "process attach");
> break;
> case DLL_THREAD_ATTACH: fprintf (output, "thread attach");
> break;
> case DLL_THREAD_DETACH: fprintf (output, "thread detach");
> break;
> case DLL_PROCESS_DETACH: fprintf (output, "process detach");
> break;
> default: fprintf (output, "WTF?!");
> }
> fprintf (output, "\n");
> fflush (output);
> return TRUE;
> }
> ---------- Note: cutting here may damage your screen surface ---------
--
Brian Ford
Senior Realtime Software Engineer
VITAL - Visual Simulation Systems
FlightSafety International
Phone: 314-551-8460
Fax: 314-551-8444
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
- Raw text -