открыть параметры поиска, когда вы делаете поиск / замену. проверьте чувствительный к регистру вариант. вам придется делать ароматизаторы вручную, если вы не сделаете что-то вроде: http://www.aaronlerch.com/blog/2007/03/28/visual-studio-find-and-replace-regular-expressions/ , или используйте что-то вроде: http://www.download3k.com/MP3-Audio-Video/Utilities-Plug-Ins/Download-Find-Replace.html
Если у вас есть многопоточное приложение и некоторые потоки все еще подключены, приложениям на другом конце может не понравиться способ разрыва соединения. Поэтому предпочтительно закрыть все коммуникации в упорядоченном порядке до завершения main (), и когда вы это сделаете, вы можете также вызвать WSACleanup.
Я согласен с тем, что подход RAII является благоприятным.
Однако одно предупреждение: atExit, смешанный с dll и дескрипторами, не работает в Windows. К сожалению, это также влияет на RAII, поскольку это реализовано с помощью обработчиков atExit средой выполнения c ++.
Порядок, в котором обработчики atexit вызываются в окнах:
Не имеет значения, зарегистрированы ли обработчики atexit в dll перед обработчиками процесса, которые обрабатываются обработчиками процесса. вызывается первым, и дескрипторы уничтожаются до вызова обработчиков dll. Это приводит к исключениям win32, когда вызывается код очистки, поскольку все дескрипторы, принадлежащие dll, больше не действительны.
Этот код эффектов содержит дескрипторы потоков, мьютексов, файлов, сокетов и т. Д. Если они размещены в dll, то они должны быть очищены до вызова exit или не вызываются вовсе.
Кстати, я не anti window, если я ошибаюсь или кто-то знает способ обойти это, я хотел бы знать, так как это причиняет мне невыразимую боль при очистке приложения. Я понял, что это отладка обработки выхода в среде выполнения c ++ после получения исключений win32 при выходе из приложений.
Мне пришлось удалить все вызовы для выхода из моего кода. Теперь я убедился, что никакие статические данные в dll не управляют дескриптором. Все статические дескрипторы управляются объектами, которые разрушаются, когда main выходит за пределы области видимости.
Между прочим, я не противник окна, если я ошибаюсь или кто-то знает способ обойти это, я хотел бы знать, так как это причиняет мне невыразимую боль при очистке приложения. Я понял, что это отладка обработки выхода в среде выполнения c ++ после получения исключений win32 при выходе из приложений.
Мне пришлось удалить все вызовы для выхода из моего кода. Теперь я убедился, что никакие статические данные в dll не управляют дескриптором. Все статические дескрипторы управляются объектами, которые разрушаются, когда main выходит за пределы области видимости.
Между прочим, я не противник окна, если я ошибаюсь или кто-то знает способ обойти это, я хотел бы знать, так как это причиняет мне невыразимую боль при очистке приложения. Я понял, что это отладка обработки выхода в среде выполнения c ++ после получения исключений win32 при выходе из приложений.
Мне пришлось удалить все вызовы для выхода из моего кода. Теперь я убедился, что никакие статические данные в dll не управляют дескриптором. Все статические дескрипторы управляются объектами, которые разрушаются, когда main выходит за пределы области видимости.
Теперь я убедился, что никакие статические данные в dll не управляют дескриптором. Все статические дескрипторы управляются объектами, которые разрушаются, когда main выходит за пределы области видимости. Теперь я убедился, что никакие статические данные в dll не управляют дескриптором. Все статические дескрипторы управляются объектами, которые разрушаются, когда main выходит за пределы области видимости.Я думаю, что atExit не следует использовать. Вы должны следовать принципу RAII обертывания инициализации и уничтожения библиотеки сокетов в классе.