@@ -134,14 +134,24 @@ struct ggml_backend_registry {
134134
135135    ggml_backend_reg_t  load_backend (const  char  * path, bool  silent) {
136136#ifdef  _WIN32
137+         //  suppress error dialogs for missing DLLs
138+         DWORD old_mode = SetErrorMode (SEM_FAILCRITICALERRORS);
139+         SetErrorMode (old_mode | SEM_FAILCRITICALERRORS);
140+ 
137141        HMODULE handle = LoadLibraryA (path);
142+ 
138143        if  (!handle) {
139144            if  (!silent) {
140145                GGML_LOG_ERROR (" %s: failed to load %s: %lu\n "  , __func__, path, GetLastError ());
141146            }
147+             SetErrorMode (old_mode);
142148            return  nullptr ;
143149        }
150+ 
144151        ggml_backend_init_t  backend_init = (ggml_backend_init_t ) GetProcAddress (handle, " ggml_backend_init"  );
152+ 
153+         SetErrorMode (old_mode);
154+ 
145155        if  (!backend_init) {
146156            if  (!silent) {
147157                GGML_LOG_ERROR (" %s: failed to find ggml_backend_init in %s: %lu\n "  , __func__, path, GetLastError ());
@@ -151,13 +161,16 @@ struct ggml_backend_registry {
151161        }
152162#else 
153163        void  * handle = dlopen (path, RTLD_NOW | RTLD_LOCAL);
164+ 
154165        if  (!handle) {
155166            if  (!silent) {
156167                GGML_LOG_ERROR (" %s: failed to load %s: %s\n "  , __func__, path, dlerror ());
157168            }
158169            return  nullptr ;
159170        }
171+ 
160172        auto  * backend_init = (ggml_backend_init_t ) dlsym (handle, " ggml_backend_init"  );
173+ 
161174        if  (!backend_init) {
162175            if  (!silent) {
163176                GGML_LOG_ERROR (" %s: failed to find ggml_backend_init in %s: %s\n "  , __func__, path, dlerror ());
@@ -167,6 +180,7 @@ struct ggml_backend_registry {
167180        }
168181#endif 
169182        ggml_backend_reg_t  reg = backend_init ();
183+ 
170184        if  (!reg || reg->api_version  != GGML_BACKEND_API_VERSION) {
171185            if  (!silent) {
172186                if  (!reg) {
0 commit comments