This is the mail archive of the cygwin@sourceware.cygnus.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

RE: Making DLL4s



	I was very happy to see the original post on trouble
free dll's. I tried it out immediately and was disappointed 
that it did not work for me either. However, a little testing
found that unlike Harbaugh below, I can pass parameters without
errors. My problem is a little more subtle. 
	I am trying to load the dll into an MSVC (2.0) program. 
I find that I can load the dll during the WinMain procedure, and
in some parts of the WinProc (Main window procedure). The library 
will load if I am in the message handler for WM_CREATE or WM_PAINT, 
but not in the message handler for WM_COMMAND! When I say message 
handler I don't mean a separate function just a separate part of
the switch-case logic. That is, my WinProc looks like:

LONG FAR PASCAL WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
    PAINTSTRUCT ps;
	HINSTANCE hInst = NULL;
	DWORD Err=0;
		
    switch (msg){
	case WM_CREATE:
		hInst = LoadLibraryEx("dll.dll", 0, 0);
		Err = GetLastError();
		return 0;
	case WM_PAINT:
	        BeginPaint(hWnd, &ps);
        	EndPaint(hWnd,&ps);
        	return 0;
    	case WM_COMMAND:
		switch (wParam){
		        case IDM_EXIT:
				SendMessage(hWnd, WM_CLOSE,0,0);
	        	        break;
	        	case IDM_LOAD_DLL:
				break;
		}
       		return 0;
	case WM_DESTROY:
        	PostQuitMessage(0);
        	return 0;
	default:
		return (DefWindowProc(hWnd, msg, wParam, lParam));
	 }
}

In this configuration the dll is loaded, if the LoadLibraryEx()
call is moved into the WM_COMMAND portion it will not load. I 
don't understand why, if I use a dll built with MSVC it works 
fine. Any help would be very much appreciated. 

Matt 

On Sun, 13 Apr 1997 HARBAUGH@FCRFV1.NCIFCRF.GOV wrote:

> Subj:	RE: Making DLL4s
> 
> Ismael, your example worked great, but I still have a problem because
> I need to pass arguments.  Whenever I try to write a function that
> passes arguments, the linker complains as follows:
> 

/*****************************************/
/* Matt Calder, Dept. of Statistics, CSU */
/* http://www.stat.colostate.edu/~calder */
/*****************************************/

-
For help on using this list (especially unsubscribing), send a message to
"gnu-win32-request@cygnus.com" with one line of text: "help".


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]