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/