Windows error 10038

Is there any solution for 10038 server error .i have done coding in c++; the server runs fine 10 to 12 hours but sudenly it gives 10038 socket error

Is there any solution for 10038 server error .i have done coding in c++;
the server runs fine 10 to 12 hours but sudenly it gives 10038 socket error

asked Oct 16, 2010 at 8:32

SunilRai86's user avatar

SunilRai86SunilRai86

9706 gold badges16 silver badges26 bronze badges

0

Without seeing your code: the symptom you describe sounds like you are leaking memory/resources, i.e. you are forgetting to free/delete objects you are allocating. It could also be a timing issue. I suggest you post your (cut-down) code.

10038 (WSAENOTSOCK): Socket operation on nonsocket. An operation
was attempted on something that is not
a socket. Either the socket handle
parameter did not reference a valid
socket, or for select, a member of an
fd_set was not valid.

answered Oct 16, 2010 at 8:34

Mitch Wheat's user avatar

Mitch WheatMitch Wheat

293k43 gold badges463 silver badges538 bronze badges

2

I bet you are accessing a socket that you already closed. This is a very common timing bug in WinSock programming — the good news (and bad news, because it’s hard to reproduce) is that you are not hitting it very often so it’s likely your code does not need much work to make it perfect. I think you should add thread-safe diagnostics that output a string including the socket value (an int, basically) on every open and close, and from anywhere you see this 10038 or other unexpected errors.

If you can add those diagnostics and then set up a stress test that focuses on open and close areas in your program (you may need to strip down the code to a small subset for unit testing of the sockets handling, maybe doing this back-to-back on localhost, or to two LAN-connected machines) then it will likely manifest much more quickly than 10-12 hours and you may find and fix other timing windows along the way. The goal is to try to compress 10-12 hours of ‘normal’ socket activity into as small a space of time as possible, to really expose any hard-to-detect concurrency problems.

answered Oct 16, 2010 at 12:23

Steve Townsend's user avatar

Steve TownsendSteve Townsend

53.2k9 gold badges91 silver badges139 bronze badges

There may be two reasons for this:

  1. Your socket descriptor in uninitialized (i.e. doesn’t reference a valid socket).
  2. You closed this socket (by a call to closesocket), and still try to use it.

Such an error is always a bug, it’s not related to the real network activity/state and etc. This is equivalent (in some sense) to either trying to use a resource/memory after you free it, or simply referencing an uninitialized pointer.

So that in order to solve the 10038 you must fix your code.

P.S. If you have a multi-threaded application — it’s likely that you close the socket in one thread, whereas the other thread still trying to use it.

Anyway, there’s a good practice to initialize socket descriptors to INVALID_SOCKET at the beginning. Also set it to INVALID_SOCKET immediately after you close it.

Then, before trying to use it you may check if the socket is valid. In such a way you may find the problematic scenario.

answered Oct 16, 2010 at 10:21

valdo's user avatar

valdovaldo

12.5k2 gold badges35 silver badges65 bronze badges

Also look out for the fact that — at least in Windows — you will get 10038 if you try to send on a socket on one thread that was opened in a different thread.

answered Nov 9, 2017 at 18:17

Ted W's user avatar

Ted WTed W

2394 silver badges11 bronze badges

1

Is there any solution for 10038 server error .i have done coding in c++;
the server runs fine 10 to 12 hours but sudenly it gives 10038 socket error

asked Oct 16, 2010 at 8:32

SunilRai86's user avatar

SunilRai86SunilRai86

9706 gold badges16 silver badges26 bronze badges

0

Without seeing your code: the symptom you describe sounds like you are leaking memory/resources, i.e. you are forgetting to free/delete objects you are allocating. It could also be a timing issue. I suggest you post your (cut-down) code.

10038 (WSAENOTSOCK): Socket operation on nonsocket. An operation
was attempted on something that is not
a socket. Either the socket handle
parameter did not reference a valid
socket, or for select, a member of an
fd_set was not valid.

answered Oct 16, 2010 at 8:34

Mitch Wheat's user avatar

Mitch WheatMitch Wheat

293k43 gold badges463 silver badges538 bronze badges

2

I bet you are accessing a socket that you already closed. This is a very common timing bug in WinSock programming — the good news (and bad news, because it’s hard to reproduce) is that you are not hitting it very often so it’s likely your code does not need much work to make it perfect. I think you should add thread-safe diagnostics that output a string including the socket value (an int, basically) on every open and close, and from anywhere you see this 10038 or other unexpected errors.

If you can add those diagnostics and then set up a stress test that focuses on open and close areas in your program (you may need to strip down the code to a small subset for unit testing of the sockets handling, maybe doing this back-to-back on localhost, or to two LAN-connected machines) then it will likely manifest much more quickly than 10-12 hours and you may find and fix other timing windows along the way. The goal is to try to compress 10-12 hours of ‘normal’ socket activity into as small a space of time as possible, to really expose any hard-to-detect concurrency problems.

answered Oct 16, 2010 at 12:23

Steve Townsend's user avatar

Steve TownsendSteve Townsend

53.2k9 gold badges91 silver badges139 bronze badges

There may be two reasons for this:

  1. Your socket descriptor in uninitialized (i.e. doesn’t reference a valid socket).
  2. You closed this socket (by a call to closesocket), and still try to use it.

Such an error is always a bug, it’s not related to the real network activity/state and etc. This is equivalent (in some sense) to either trying to use a resource/memory after you free it, or simply referencing an uninitialized pointer.

So that in order to solve the 10038 you must fix your code.

P.S. If you have a multi-threaded application — it’s likely that you close the socket in one thread, whereas the other thread still trying to use it.

Anyway, there’s a good practice to initialize socket descriptors to INVALID_SOCKET at the beginning. Also set it to INVALID_SOCKET immediately after you close it.

Then, before trying to use it you may check if the socket is valid. In such a way you may find the problematic scenario.

answered Oct 16, 2010 at 10:21

valdo's user avatar

valdovaldo

12.5k2 gold badges35 silver badges65 bronze badges

Also look out for the fact that — at least in Windows — you will get 10038 if you try to send on a socket on one thread that was opened in a different thread.

answered Nov 9, 2017 at 18:17

Ted W's user avatar

Ted WTed W

2394 silver badges11 bronze badges

1

Icon Ex Номер ошибки: Ошибка 10038
Название ошибки: Direct Access Error 10038
Описание ошибки: Ошибка 10038: Возникла ошибка в приложении DirectAccess. Приложение будет закрыто. Приносим извинения за неудобства.
Разработчик: Microsoft Corporation
Программное обеспечение: DirectAccess
Относится к: Windows XP, Vista, 7, 8, 10, 11

Обзор «Direct Access Error 10038»

Обычно люди ссылаются на «Direct Access Error 10038» как на ошибку времени выполнения (ошибку). Программисты, такие как Microsoft Corporation, стремятся создавать программное обеспечение, свободное от этих сбоев, пока оно не будет публично выпущено. К сожалению, некоторые критические проблемы, такие как ошибка 10038, часто могут быть упущены из виду.

В выпуске последней версии DirectAccess может возникнуть ошибка, которая гласит: «Direct Access Error 10038». Во время возникновения ошибки 10038 конечный пользователь может сообщить о проблеме в Microsoft Corporation. Затем Microsoft Corporation может исправить эти ошибки в исходном коде и подготовить обновление для загрузки. Эта ситуация происходит из-за обновления программного обеспечения DirectAccess является одним из решений ошибок 10038 ошибок и других проблем.

Почему возникает ошибка времени выполнения 10038?

У вас будет сбой во время выполнения DirectAccess, если вы столкнетесь с «Direct Access Error 10038» во время выполнения. Причины сбоев обработки можно отличить, классифицируя ошибки 10038 следующим образом:.

Ошибка 10038 Crash — это очень популярная ошибка выполнения ошибки 10038, которая приводит к завершению работы всей программы. Обычно это происходит, когда DirectAccess не может обрабатывать предоставленный ввод или когда он не знает, что выводить.

Утечка памяти «Direct Access Error 10038» — если есть утечка памяти в DirectAccess, это может привести к тому, что ОС будет выглядеть вялой. Потенциальные триггеры могут быть «бесконечным циклом», или когда программа выполняет «цикл» или повторение снова и снова.

Ошибка 10038 Logic Error — «логическая ошибка», как говорят, генерируется, когда программное обеспечение получает правильный ввод, но генерирует неверный вывод. Обычные причины этой проблемы связаны с ошибками в обработке данных.

Большинство ошибок Direct Access Error 10038 являются результатом отсутствия или повреждения версии файла, установленного DirectAccess. Обычно, установка новой версии файла Microsoft Corporation позволяет устранить проблему, из-за которой возникает ошибка. Мы также рекомендуем выполнить сканирование реестра, чтобы очистить все недействительные ссылки на Direct Access Error 10038, которые могут являться причиной ошибки.

Типичные ошибки Direct Access Error 10038

Эти проблемы DirectAccess, связанные с Direct Access Error 10038, включают в себя:

  • «Ошибка приложения Direct Access Error 10038.»
  • «Недопустимая программа Win32: Direct Access Error 10038»
  • «Direct Access Error 10038 должен быть закрыт. «
  • «Direct Access Error 10038 не может быть найден. «
  • «Direct Access Error 10038 не может быть найден. «
  • «Ошибка запуска в приложении: Direct Access Error 10038. «
  • «Не удается запустить Direct Access Error 10038. «
  • «Direct Access Error 10038 выйти. «
  • «Ошибка в пути к программному обеспечению: Direct Access Error 10038. «

Ошибки Direct Access Error 10038 EXE возникают во время установки DirectAccess, при запуске приложений, связанных с Direct Access Error 10038 (DirectAccess), во время запуска или завершения работы или во время установки ОС Windows. При появлении ошибки Direct Access Error 10038 запишите вхождения для устранения неполадок DirectAccess и чтобы HelpMicrosoft Corporation найти причину.

Причины ошибок в файле Direct Access Error 10038

Проблемы DirectAccess и Direct Access Error 10038 возникают из отсутствующих или поврежденных файлов, недействительных записей реестра Windows и вредоносных инфекций.

Точнее, ошибки Direct Access Error 10038, созданные из:

  • Недопустимый Direct Access Error 10038 или поврежденный раздел реестра.
  • Файл Direct Access Error 10038 поврежден от вирусной инфекции.
  • Другая программа (не связанная с DirectAccess) удалила Direct Access Error 10038 злонамеренно или по ошибке.
  • Другое программное обеспечение, конфликтующее с DirectAccess, Direct Access Error 10038 или общими ссылками.
  • DirectAccess (Direct Access Error 10038) поврежден во время загрузки или установки.

Продукт Solvusoft

Загрузка
WinThruster 2022 — Проверьте свой компьютер на наличие ошибок.

Совместима с Windows 2000, XP, Vista, 7, 8, 10 и 11

Установить необязательные продукты — WinThruster (Solvusoft) | Лицензия | Политика защиты личных сведений | Условия | Удаление

    msm.ru

    Нравится ресурс?

    Помоги проекту!

    [!] Как относитесь к модерированию на этом форуме? Выскажите свое мнение здесь

    >
    Сокет и ошибка 10038

    • Подписаться на тему
    • Сообщить другу
    • Скачать/распечатать тему



    Сообщ.
    #1

    ,
    04.09.08, 11:29

      Full Member

      ***

      Рейтинг (т): 7

      День добрый.
      Вообщем история такая. Есть два приложения — клиент и сервер. Вообщем всё классически. Трабл такого толка — когда клиент закрывает соединение на сервере сразу же после обработчика события OnClientDisconnect вываливается ошибка:
      Windows socket error: Сделана попытка выполнить операцию на объекте, не являющемся сокетом (10038), on API ‘closesocket’
      При чём вываливается сразу в двух экземплярах. Код огромный — выкладывать его тут смысла нет. Вероятно на момент закрытия сокета он уже не существует исходя из толкования ошибки. С другой стороны он передаётся в обработчик, так что существовать должен, в дебаге видно даже его настройки. Проверено, что никакой другой кусок кода в этот момент не пытается работать с этим сокетом. Мысли есть?

      Добавлено 04.09.08, 12:14
      Прошерстил гугль. Указанная ошибка встречается всего два раза. Оба пальцем в небо.


      trainer



      Сообщ.
      #2

      ,
      04.09.08, 13:09

        Цитата DrMort @ 04.09.08, 11:29

        С другой стороны он передаётся в обработчик, так что существовать должен, в дебаге видно даже его настройки.

        Какое отношение обработчик события в компоненте VCL имеет к системному объекту? Системный объект видимо удален, экземпляр компонента остался. Любые попытки использовать системный объект через компонент будут давать ошибки(если компонент не будет самостоятельно пересоздавать системный объект, а он в данном случае не будет пересоздавать).
        Ну и исходник покажи.
        Хотя вообще-то странно. Не должен на сервере закрываться сокет, находящийся в режиме прослушивания.

        Эээ… Ты закрываешь сокет в OnClientDisconnect?

        Сообщение отредактировано: trainer — 04.09.08, 13:17


        Akme



        Сообщ.
        #3

        ,
        04.09.08, 13:17

          Указатели какие-нить не перезаписываешь? Что в дисконекте делается? Один поток в программе или нет?


          DrMort



          Сообщ.
          #4

          ,
          05.09.08, 01:20

            Full Member

            ***

            Рейтинг (т): 7

            Никаких указателей не перезаписываю. В дисконнекте меняются просто флажки соединений — то есть в массив проставляется что васе пупкину больше ничего отсылать не стоит — мы его потеряли. Программа однопоточная — никаких специальных замутов наподобии CreateThread не делал. Сейчас попробую привести некий кусок кода

            ExpandedWrap disabled

              void __fastcall TForm1::ServerSocket1ClientDisconnect(TObject *Sender,

                    TCustomWinSocket *Socket)

              {

                      int CurrentLocation=0,counter=0;

                      int NumSym=0,i,o;

                      AnsiString CurrName=»»;

                      for(i=0;i<MaxConnections;i++) //MaxConnections — константа содержащая максимальное число соединений с клиентами

                              {

                              if((Connections[i].Socket==Socket) && (Connections[i].Connected==true))

                                      {

                                      if(Connections[i].Login!=»»)

                                              {

                                              Memo1->Lines->Add(Connections[i].Login+» disconnected»);

                                              CurrName=Connections[i].Login;

                                              CurrName=CurrName.Trim();

                                              }

                                      else

                                              Memo1->Lines->Add(«Non logined client disconnected»);

                                      Connections[i].Connected=false;

                                      Connections[i].Autorize=false;

                                      for(o=0;o<BufferLength;o++)

                                              Connections[i].SendBuffer[o]=»»;

                                      Connections[i].BufferCounter=0;

                                      Connections[i].Idle=0;

                                      Form1->StatisticMonitor->Values[«CurrentConnection»]=IntToStr(StrToInt(Form1->StatisticMonitor->Values[«CurrentConnection»])-1);

                                      break;

                                      };

                              };

              }

            Connections[] — массив структур содержащий сведения о соединениях, В нём есть поле Socket значение которого заполняется при установке связи.

            Но все это описание зряшное, потомучто содержимое обработчика можно полностью убрать и ничего не изменится — проверено. Так же пробовал в начале каждой процедуры имеющейся в проекте ставить стоп поинт и отслеживать что ещё происходит в момент когда клиент обрывает связь. Так вот ничего не происходит — сразу срабатывает OnClientDisconnect. Сразу после его срабатывания вылетает подряд две ошибки. Так что вероятнее всего дело не в исходном коде, а в настройках/багах проекта/операционной системы/среды программирования. Чуть позже попробую на чистом компе возвести SQL сервер и запустить серверное приложение. Если ошибка исчезнет — всему виной срада/операционка.


            leo



            Сообщ.
            #5

            ,
            05.09.08, 07:28

              Цитата DrMort @ 05.09.08, 01:20

              В дисконнекте меняются просто флажки соединений — то есть в массив проставляется что васе пупкину больше ничего отсылать не стоит — мы его потеряли

              И что разорванное соединение так и остается навсегда в массиве Connections или удаляется ?
              Следует иметь в виду, что клиентский сокет закрывается и удаляется автоматически после вызова OnClientDisconnect. Поэтому ни закрывать, ни освобождать самому Connections[i].Socket в OnClientDisconnect (и тем более до или после) нельзя, ну и ес-но нельзя обращаться к инвалидному указателю Connections[i].Socket после OnClientDisconnect

              Цитата DrMort @ 05.09.08, 01:20

              Программа однопоточная — никаких специальных замутов наподобии CreateThread не делал

              Чтобы прога стало многопоточной достаточно установить «замут» ServerType:=stThreadBlocking ;)


              DrMort



              Сообщ.
              #6

              ,
              05.09.08, 10:26

                Full Member

                ***

                Рейтинг (т): 7

                Разорваное соединение остаётся, но никогда не используется. По прошествии некоторого времени по таймеру выбираются все разорваные соединения и удаляются из массива.
                Ещё раз — в OnClientDisconnect сокет вообще не трогается — процедура обработчика вообще может быть пустой. И тем более к указателю Connections[i].Socket никто не обращается. Дело все таки несколько в другом.
                Про ServerType:=stThreadBlocking мне тоже известно.
                Попробовал запустить сервер на другом компе где поднят SQL. Запустилась и нормально работает. Переставил винду. У меня по прежнему глючит. Возможно проблема с каким то драйвером. Мучаю дальше.


                Oleg2004



                Сообщ.
                #7

                ,
                05.09.08, 11:54

                  Есть такая ситуация — что в режиме дебага многие среды при тестирование клиент-серверных приложений глючат.
                  Поэтому я всегда рекомендую делать отладочные релизы и запускать как самостоятельные программы вне среды программирования……


                  DrMort



                  Сообщ.
                  #8

                  ,
                  05.09.08, 11:59

                    Full Member

                    ***

                    Рейтинг (т): 7

                    Вне среды все равно глючит. Переставил винду — все та же ошибка. Завтра попробую переставить винду и не ставить ни одного драйвера.


                    DrMort



                    Сообщ.
                    #9

                    ,
                    06.09.08, 08:31

                      Full Member

                      ***

                      Рейтинг (т): 7

                      Переставил винду поверх старой. Глючит. Форматнул винт — нормально. С дровами тоже нормально. Похоже что-то было с операционкой, может какие нить последствия лечения вирусни. Всем спасибо за мысли.

                      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)

                      0 пользователей:

                      • Предыдущая тема
                      • Borland C++ Builder/Turbo C++ Explorer
                      • Следующая тема

                      Рейтинг@Mail.ru

                      [ Script execution time: 0,0318 ]   [ 16 queries used ]   [ Generated: 10.02.23, 05:45 GMT ]  

                      В этой статье представлена ошибка с номером Ошибка 10038, известная как Ошибка прямого доступа 10038, описанная как Ошибка 10038: Возникла ошибка в приложении DirectAccess. Приложение будет закрыто. Приносим свои извинения за неудобства.

                      О программе Runtime Ошибка 10038

                      Время выполнения Ошибка 10038 происходит, когда DirectAccess дает сбой или падает во время запуска, отсюда и название. Это не обязательно означает, что код был каким-то образом поврежден, просто он не сработал во время выполнения. Такая ошибка появляется на экране в виде раздражающего уведомления, если ее не устранить. Вот симптомы, причины и способы устранения проблемы.

                      Определения (Бета)

                      Здесь мы приводим некоторые определения слов, содержащихся в вашей ошибке, в попытке помочь вам понять вашу проблему. Эта работа продолжается, поэтому иногда мы можем неправильно определить слово, так что не стесняйтесь пропустить этот раздел!

                      • Access — НЕ ИСПОЛЬЗУЙТЕ этот тег для Microsoft Access, используйте вместо него [ms-access]
                      • Access — Microsoft Access, также известная как Microsoft Office Access, это система управления базами данных от Microsoft, которая обычно сочетает в себе реляционный Microsoft JetACE Database Engine с графическим пользовательским интерфейсом и инструментами для разработки программного обеспечения.

                      Симптомы Ошибка 10038 — Ошибка прямого доступа 10038

                      Ошибки времени выполнения происходят без предупреждения. Сообщение об ошибке может появиться на экране при любом запуске %программы%. Фактически, сообщение об ошибке или другое диалоговое окно может появляться снова и снова, если не принять меры на ранней стадии.

                      Возможны случаи удаления файлов или появления новых файлов. Хотя этот симптом в основном связан с заражением вирусом, его можно отнести к симптомам ошибки времени выполнения, поскольку заражение вирусом является одной из причин ошибки времени выполнения. Пользователь также может столкнуться с внезапным падением скорости интернет-соединения, но, опять же, это не всегда так.

                      Fix Ошибка прямого доступа 10038 (Error Ошибка 10038)
                      (Только для примера)

                      Причины Ошибка прямого доступа 10038 — Ошибка 10038

                      При разработке программного обеспечения программисты составляют код, предвидя возникновение ошибок. Однако идеальных проектов не бывает, поскольку ошибки можно ожидать даже при самом лучшем дизайне программы. Глюки могут произойти во время выполнения программы, если определенная ошибка не была обнаружена и устранена во время проектирования и тестирования.

                      Ошибки во время выполнения обычно вызваны несовместимостью программ, запущенных в одно и то же время. Они также могут возникать из-за проблем с памятью, плохого графического драйвера или заражения вирусом. Каким бы ни был случай, проблему необходимо решить немедленно, чтобы избежать дальнейших проблем. Ниже приведены способы устранения ошибки.

                      Методы исправления

                      Ошибки времени выполнения могут быть раздражающими и постоянными, но это не совсем безнадежно, существует возможность ремонта. Вот способы сделать это.

                      Если метод ремонта вам подошел, пожалуйста, нажмите кнопку upvote слева от ответа, это позволит другим пользователям узнать, какой метод ремонта на данный момент работает лучше всего.

                      Обратите внимание: ни ErrorVault.com, ни его авторы не несут ответственности за результаты действий, предпринятых при использовании любого из методов ремонта, перечисленных на этой странице — вы выполняете эти шаги на свой страх и риск.

                      Метод 1 — Закройте конфликтующие программы

                      Когда вы получаете ошибку во время выполнения, имейте в виду, что это происходит из-за программ, которые конфликтуют друг с другом. Первое, что вы можете сделать, чтобы решить проблему, — это остановить эти конфликтующие программы.

                      • Откройте диспетчер задач, одновременно нажав Ctrl-Alt-Del. Это позволит вам увидеть список запущенных в данный момент программ.
                      • Перейдите на вкладку «Процессы» и остановите программы одну за другой, выделив каждую программу и нажав кнопку «Завершить процесс».
                      • Вам нужно будет следить за тем, будет ли сообщение об ошибке появляться каждый раз при остановке процесса.
                      • Как только вы определите, какая программа вызывает ошибку, вы можете перейти к следующему этапу устранения неполадок, переустановив приложение.

                      Метод 2 — Обновите / переустановите конфликтующие программы

                      Использование панели управления

                      • В Windows 7 нажмите кнопку «Пуск», затем нажмите «Панель управления», затем «Удалить программу».
                      • В Windows 8 нажмите кнопку «Пуск», затем прокрутите вниз и нажмите «Дополнительные настройки», затем нажмите «Панель управления»> «Удалить программу».
                      • Для Windows 10 просто введите «Панель управления» в поле поиска и щелкните результат, затем нажмите «Удалить программу».
                      • В разделе «Программы и компоненты» щелкните проблемную программу и нажмите «Обновить» или «Удалить».
                      • Если вы выбрали обновление, вам просто нужно будет следовать подсказке, чтобы завершить процесс, однако, если вы выбрали «Удалить», вы будете следовать подсказке, чтобы удалить, а затем повторно загрузить или использовать установочный диск приложения для переустановки. программа.

                      Использование других методов

                      • В Windows 7 список всех установленных программ можно найти, нажав кнопку «Пуск» и наведя указатель мыши на список, отображаемый на вкладке. Вы можете увидеть в этом списке утилиту для удаления программы. Вы можете продолжить и удалить с помощью утилит, доступных на этой вкладке.
                      • В Windows 10 вы можете нажать «Пуск», затем «Настройка», а затем — «Приложения».
                      • Прокрутите вниз, чтобы увидеть список приложений и функций, установленных на вашем компьютере.
                      • Щелкните программу, которая вызывает ошибку времени выполнения, затем вы можете удалить ее или щелкнуть Дополнительные параметры, чтобы сбросить приложение.

                      Метод 3 — Обновите программу защиты от вирусов или загрузите и установите последнюю версию Центра обновления Windows.

                      Заражение вирусом, вызывающее ошибку выполнения на вашем компьютере, необходимо немедленно предотвратить, поместить в карантин или удалить. Убедитесь, что вы обновили свою антивирусную программу и выполнили тщательное сканирование компьютера или запустите Центр обновления Windows, чтобы получить последние определения вирусов и исправить их.

                      Метод 4 — Переустановите библиотеки времени выполнения

                      Вы можете получить сообщение об ошибке из-за обновления, такого как пакет MS Visual C ++, который может быть установлен неправильно или полностью. Что вы можете сделать, так это удалить текущий пакет и установить новую копию.

                      • Удалите пакет, выбрав «Программы и компоненты», найдите и выделите распространяемый пакет Microsoft Visual C ++.
                      • Нажмите «Удалить» в верхней части списка и, когда это будет сделано, перезагрузите компьютер.
                      • Загрузите последний распространяемый пакет от Microsoft и установите его.

                      Метод 5 — Запустить очистку диска

                      Вы также можете столкнуться с ошибкой выполнения из-за очень нехватки свободного места на вашем компьютере.

                      • Вам следует подумать о резервном копировании файлов и освобождении места на жестком диске.
                      • Вы также можете очистить кеш и перезагрузить компьютер.
                      • Вы также можете запустить очистку диска, открыть окно проводника и щелкнуть правой кнопкой мыши по основному каталогу (обычно это C :)
                      • Щелкните «Свойства», а затем — «Очистка диска».

                      Метод 6 — Переустановите графический драйвер

                      Если ошибка связана с плохим графическим драйвером, вы можете сделать следующее:

                      • Откройте диспетчер устройств и найдите драйвер видеокарты.
                      • Щелкните правой кнопкой мыши драйвер видеокарты, затем нажмите «Удалить», затем перезагрузите компьютер.

                      Метод 7 — Ошибка выполнения, связанная с IE

                      Если полученная ошибка связана с Internet Explorer, вы можете сделать следующее:

                      1. Сбросьте настройки браузера.
                        • В Windows 7 вы можете нажать «Пуск», перейти в «Панель управления» и нажать «Свойства обозревателя» слева. Затем вы можете перейти на вкладку «Дополнительно» и нажать кнопку «Сброс».
                        • Для Windows 8 и 10 вы можете нажать «Поиск» и ввести «Свойства обозревателя», затем перейти на вкладку «Дополнительно» и нажать «Сброс».
                      2. Отключить отладку скриптов и уведомления об ошибках.
                        • В том же окне «Свойства обозревателя» можно перейти на вкладку «Дополнительно» и найти пункт «Отключить отладку сценария».
                        • Установите флажок в переключателе.
                        • Одновременно снимите флажок «Отображать уведомление о каждой ошибке сценария», затем нажмите «Применить» и «ОК», затем перезагрузите компьютер.

                      Если эти быстрые исправления не работают, вы всегда можете сделать резервную копию файлов и запустить восстановление на вашем компьютере. Однако вы можете сделать это позже, когда перечисленные здесь решения не сработают.

                      Другие языки:

                      How to fix Error 10038 (Direct Access Error 10038) — Error 10038: DirectAccess has encountered a problem and needs to close. We are sorry for the inconvenience.
                      Wie beheben Fehler 10038 (Direktzugriffsfehler 10038) — Fehler 10038: DirectAccess hat ein Problem festgestellt und muss geschlossen werden. Wir entschuldigen uns für die Unannehmlichkeiten.
                      Come fissare Errore 10038 (Errore di accesso diretto 10038) — Errore 10038: DirectAccess ha riscontrato un problema e deve essere chiuso. Ci scusiamo per l’inconveniente.
                      Hoe maak je Fout 10038 (Directe toegangsfout 10038) — Fout 10038: DirectAccess heeft een probleem ondervonden en moet worden afgesloten. Excuses voor het ongemak.
                      Comment réparer Erreur 10038 (Erreur d’accès direct 10038) — Erreur 10038 : DirectAccess a rencontré un problème et doit se fermer. Nous sommes désolés du dérangement.
                      어떻게 고치는 지 오류 10038 (직접 액세스 오류 10038) — 오류 10038: DirectAccess에 문제가 발생해 닫아야 합니다. 불편을 드려 죄송합니다.
                      Como corrigir o Erro 10038 (Erro de acesso direto 10038) — Erro 10038: O DirectAccess encontrou um problema e precisa fechar. Lamentamos o inconveniente.
                      Hur man åtgärdar Fel 10038 (Direct Access Error 10038) — Fel 10038: DirectAccess har stött på ett problem och måste avslutas. Vi är ledsna för besväret.
                      Jak naprawić Błąd 10038 (Błąd bezpośredniego dostępu 10038) — Błąd 10038: DirectAccess napotkał problem i musi zostać zamknięty. Przepraszamy za niedogodności.
                      Cómo arreglar Error 10038 (Error de acceso directo 10038) — Error 10038: DirectAccess ha detectado un problema y debe cerrarse. Lamentamos las molestias.

                      The Author Об авторе: Фил Харт является участником сообщества Microsoft с 2010 года. С текущим количеством баллов более 100 000 он внес более 3000 ответов на форумах Microsoft Support и создал почти 200 новых справочных статей в Technet Wiki.

                      Следуйте за нами: Facebook Youtube Twitter

                      Последнее обновление:

                      13/07/22 05:59 : Пользователь Windows 10 проголосовал за то, что метод восстановления 1 работает для него.

                      Рекомендуемый инструмент для ремонта:

                      Этот инструмент восстановления может устранить такие распространенные проблемы компьютера, как синие экраны, сбои и замораживание, отсутствующие DLL-файлы, а также устранить повреждения от вредоносных программ/вирусов и многое другое путем замены поврежденных и отсутствующих системных файлов.

                      ШАГ 1:

                      Нажмите здесь, чтобы скачать и установите средство восстановления Windows.

                      ШАГ 2:

                      Нажмите на Start Scan и позвольте ему проанализировать ваше устройство.

                      ШАГ 3:

                      Нажмите на Repair All, чтобы устранить все обнаруженные проблемы.

                      СКАЧАТЬ СЕЙЧАС

                      Совместимость

                      Требования

                      1 Ghz CPU, 512 MB RAM, 40 GB HDD
                      Эта загрузка предлагает неограниченное бесплатное сканирование ПК с Windows. Полное восстановление системы начинается от $19,95.

                      ID статьи: ACX03665RU

                      Применяется к: Windows 10, Windows 8.1, Windows 7, Windows Vista, Windows XP, Windows 2000

                      Понравилась статья? Поделить с друзьями:
                    • Windows error 10013
                    • Windows error 0x800f0906
                    • Windows error 0x80070017
                    • Windows error 0x000000d1
                    • Windows error 0x000000a5