mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 21:51:50 +00:00 
			
		
		
		
	Applied #1069410
The "can't load dll" message box on Windows is suppressed while an extension is loaded by calling SetErrorMode in dynload_win.c. The error is still reported properly.
This commit is contained in:
		
							parent
							
								
									082c9b0267
								
							
						
					
					
						commit
						b2302ba977
					
				
					 2 changed files with 13 additions and 0 deletions
				
			
		|  | @ -171,11 +171,16 @@ dl_funcptr _PyImport_GetDynLoadFunc(const char *fqname, const char *shortname, | |||
| 		HINSTANCE hDLL = NULL; | ||||
| 		char pathbuf[260]; | ||||
| 		LPTSTR dummy; | ||||
| 		unsigned int old_mode; | ||||
| 		/* We use LoadLibraryEx so Windows looks for dependent DLLs 
 | ||||
| 		    in directory of pathname first.  However, Windows95 | ||||
| 		    can sometimes not work correctly unless the absolute | ||||
| 		    path is used.  If GetFullPathName() fails, the LoadLibrary | ||||
| 		    will certainly fail too, so use its error code */ | ||||
| 
 | ||||
| 		/* Don't display a message box when Python can't load a DLL */ | ||||
| 		old_mode = SetErrorMode(SEM_FAILCRITICALERRORS); | ||||
| 
 | ||||
| 		if (GetFullPathName(pathname, | ||||
| 				    sizeof(pathbuf), | ||||
| 				    pathbuf, | ||||
|  | @ -183,6 +188,10 @@ dl_funcptr _PyImport_GetDynLoadFunc(const char *fqname, const char *shortname, | |||
| 			/* XXX This call doesn't exist in Windows CE */ | ||||
| 			hDLL = LoadLibraryEx(pathname, NULL, | ||||
| 					     LOAD_WITH_ALTERED_SEARCH_PATH); | ||||
| 
 | ||||
| 		/* restore old error mode settings */ | ||||
| 		SetErrorMode(old_mode); | ||||
| 
 | ||||
| 		if (hDLL==NULL){ | ||||
| 			char errBuf[256]; | ||||
| 			unsigned int errorCode; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Christian Heimes
						Christian Heimes