Subject: RE: Making DLL4s
From: [email-masked] (Matt Calder)

13 Apr 1997 16:26:54 -0700
Approved: [email-masked]
Distribution: cygnus
Message-ID: <[email-masked]>
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-Authentication-Warning: tlaloc.stat.colostate.edu: calder owned process doing -bs
Original-To: [email-masked]
Original-cc: [email-masked]
In-Reply-To: <[email-masked]>
Original-Sender: [email-masked]

	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 [email-masked] 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
"[email-masked]" with one line of text: "help".