argumentvoid, У вас не русская винда? Ваша ситуация еще более сложная, т.к. кодировка по умолчанию не русская.
chcp меняет кодировку до следующей chcp или до перезапуска консоли.
Где-то в глубине языковых настроек есть такая настройка "Language for non-Unicode programs" (у меня английская винда). Поставьте в этой настройке Русский язык, перезагрузитесь и кодировка консоли должна стать cp866.
argumentvoid, Посмотрите файл cpp проекта другой программой, поддерживающей разные кодировки.
Например редактор Far manager это умеет или Notepad++. Убедитесь, что кодировка исходников cp866. Убедитесь по дате создния exe что он создан после последнего сохранения cpp файла.
После этого дайте в консоли команду chcp - она покажет текущюю кодировку.
Если кодировка исходников и кодировка консоли совпадет и исполняемый файл собран после последнего сохранения исходного - то русские буквы должны выводиться нормально.
argumentvoid, вы когда вносите какие-то изменения в исходники, то они не появляются автоматически в исполняемой программе - для этого нужно пройти процесс компиляции.
argumentvoid, На счет F5 не знаю. Студия возможно по F5 не захочет его пересобрать. Rebuild solution или Rebuild <имя проекта>.
Поищите (или погуглите) в настройках студии параметр, отвечающий за то в какой кодировке сохранять исходники по умолчанию и будет вам счастье. На вскидку не подскажу.
И еще добавлю. В консоли винды нельзя быть уверенным, что у пользователя в консоли будет какая-то конкретная кодировка. Это актуально особенно в случае если вы пишите консольное приложение, которое планируете выпускать в мир.
Там достаточно было для локализации того, что выше описывал. Не знаю как так получается...
Это у вас поверхностное впечатление.
Видимо тогда у вас исходники сохранялись в кодировке совпадающей с кодировкой консоли. И вам это помогло. Но стоило в консоли перед запуском вашей программы дать команду chcp с указанием кодировки отличной от кодировки вашей программы, то вы бы снова словили эту проблему.
Обратите внимание, что родные утилиты винды нормально отображают русский текст, какая бы кодировка не была установлена в консоли (chcp 1251 или chcp 866) - как раз потому, что они перекодируют текст в правильную кодировку.
И не поможет - это надо делать в комплексе, все 4 пункта, что я написал в ответе. Это правильный подход и он работает.
Вы же сейчас можете просто сохранить исходники в cp866. А с правильным подходом разбираться позже.
Просто сохраните исходники в UTF8 или конвертируйте. Для хранения строк используйте wchar_t...
В старых версиях студии таких проблем не наблюдал.
Вы ошибаетесь. Эта проблема в винде существует изначально. Просто потому, что в ее консоли можно менять кодировку. В никсах, как правило, кодировка устанавливается один раз при установке ОС и обычно это UTF8.
Виндовая косоль вообще с UTF плохо дружит (в том смысле, что родные виндовые консольные команды ее не понимают).
Роутеры, как правило, к интернету подключаются проводом, соответственно ваш радиосигнал полученный роутером по вай-фай конвертируется в сигнал для кабеля. Конечно, есть варианты и беспроводного подключения к интернет. На самом деле как конкретно вы подключены к интернет особой разницы нет.
Интернет работает на протоколе TCP/IP, почитайте что-нибудь про него, информации много.
Интернет работает на уровне выше, чем "вай-фай" и другие "железные" каналы связи, поэтому ему без разницы среда передачи данных. Например, когда вы отправляете с телефона запрос веб серверу, то среда передачи поменяется несколько раз пока дойдет до сервера и ответ вернется к вам.
Ну вы же записали строку полученную в параметре в канал.
Какая разница между строкой полученной в параметре и строкой полученной из файла?
Никакой разницы, когда строка уже получена.
Разница только в способе получения строки. Просто реализуйте чтение из файла.
MaksSmag, домен - это всегда сначала DNS, а потом уже все остальное.
Я так понял, вы вместе с доменом купили и DNS хостинг. Настройте там вашу зону, добавьте записи для сайта (A) и для почты (MX). Для теста настроек DNS используйте утилиту nslookup или dig в линуксе.
После того как DNS заработает (nslookup по вашему доменному адресу будет возвращать правильные данные), можете настраивать все остальное: nginx, почтовик, ...
newvasyuki, Я уже 5 лет не в теме, так что ничего кроме своего устаревшего мнения вам дать не могу.
Несовместимость проявлялась в том, что файл зашифрованный в одной криптосистеме невозможно расшифровать в другой. В чем конкретно там была не совместимость я не в курсе.
Читал об этом на сайте криптопро, там же писали, что они что-то делают для улучшения совместимости, но тогда они пытались подружится с продуктами какой-то другой компании (уже не скажу какой именно), а что с остальными - не известно.
MaksSmag, Просто настройте и работайте, в инете полно инструкций. У меня лет 10 работал почтовик на виртуалке, правда не exim, но это рояли не играет. Думаю, что и сейчас он успешно работает, но уже не у меня :) Наверное я что-то делал не так.
Если хотите, чтоб вам кто-то другой настроил - ищите фрилансера за деньги.
Если по ходу возникнут какие-то вопросы то можете писать сюда.
Если у вас нет домена - купите его. Но это вообще не имеет отношения к тому где у вас размещается почтовик.
Читайте маны по системным вызовам и принимайте решение, что вы будете делать с ошибками.
Обычно есть 3 вида реакции на ошибки:
1.выдать сообщение и завершиться
2.повторить операцию (EINTR, EAGAIN), возможно не сразу
3.игнорировать (редкий случай, например когда выставляете слушающему сокету опцию SO_REUSEADDR)
EINTR - эта ошибка возвращается, когда во время системного вызова приложению приходит сигнал. Реакция зависит от того, как вы обрабатываете сигналы - если перехватываете для корректного освобождения ресурсов или еще для чего-нибудь, то есть смысл просто повторить операцию.
EIO - низкоуровневая ошибка. Обычно требуется вмешательство человека.
В общем подходите к обработке ошибок осознано, в зависимости от того, какое поведение требуется в данном конкретном случае. Каких-то единых рекомендаций тут быть не может.