Тема: С++ Вопросы и ответы. Страниц: 1 2 3 4 5 6 7 | Прочитано 49577 раз |
Ushwood [ДжАдай]
Прирожденный Джаец
May the Force be with you
Пол: Репутация: +562
|
|
Re: С++ Вопросы и ответы. « Ответ #300 от 07.01.2021 в 18:11:43 » |
|
Короче, проблему пришлось решать радикально. Я снес Студию, потом заново поставил по этому самому пути.
|
|
Зарегистрирован |
Мои текущие переводы: Червь эпилог, версия 03.05.24
|
|
|
Artem13 [13-й воин]
Прирожденный Джаец
Ап, и черти у ног моих сели...
Пол: Репутация: +441
|
|
Re: С++ Вопросы и ответы. « Ответ #301 от 03.09.2021 в 09:01:07 » |
|
Так, други, наступает момент, когда меня принуждают ваять клиент под МЭК61850. В связи с этим вопрос/просьба - кто-то ТСР на Сях программил? Если да - пните в нужном направлении (литература/уроки/т.п.). Желательно русскоязычном. Аглицкий мну напрягает
|
« Изменён в : 03.09.2021 в 09:01:24 пользователем: Artem13 » |
Зарегистрирован |
http://www.aap13.narod.ru И пули, что найдет тебя, Ты не услышишь, А остальные мимо пролетят
|
|
|
Korchy [Непреодолимая сила]
Прирожденный Джаец
Ах, было б только с кем поговорить ...
Пол: Репутация: +663
|
|
Re: С++ Вопросы и ответы. « Ответ #302 от 03.09.2021 в 09:13:50 » |
|
03.09.2021 в 09:01:07, Artem13 писал(a): У меня была в бумаге такая книжка, там было все достаточно подробно и понятно расписано. У меня конечно было более старое издание, но не думаю что там сильно поменялось: https://www.ozon.ru/product/unix-razrabotka-setevyh-prilozheniy-2881910/...
|
|
Зарегистрирован |
|
|
|
Artem13 [13-й воин]
Прирожденный Джаец
Ап, и черти у ног моих сели...
Пол: Репутация: +441
|
|
Re: С++ Вопросы и ответы. « Ответ #303 от 03.09.2021 в 09:32:55 » |
|
Эм, для виндузятины оно покатит?
|
|
Зарегистрирован |
http://www.aap13.narod.ru И пули, что найдет тебя, Ты не услышишь, А остальные мимо пролетят
|
|
|
Korchy [Непреодолимая сила]
Прирожденный Джаец
Ах, было б только с кем поговорить ...
Пол: Репутация: +663
|
|
Re: С++ Вопросы и ответы. « Ответ #304 от 03.09.2021 в 09:35:10 » |
|
03.09.2021 в 09:32:55, Artem13 писал(a):для виндузятины оно покатит? |
| Вряд-ли. Меня "МЭК61850" смутил, подумал что там линь.
|
|
Зарегистрирован |
|
|
|
jarni [Гарный хлопец]
Прирожденный Джаец
Мне нечего сказать.
Пол: Репутация: +306
|
|
Re: С++ Вопросы и ответы. « Ответ #305 от 03.09.2021 в 09:50:51 » |
|
03.09.2021 в 09:01:07, Artem13 писал(a):кто-то ТСР на Сях программил? |
| Довольно много но довольно давно 03.09.2021 в 09:01:07, Artem13 писал(a): 03.09.2021 в 09:32:55, Artem13 писал(a): https://docs.microsoft.com/en-us/windows/win32/winsock/winsock-reference... WinSock поддерживает формально как BSD socket API, то есть названия большинства функций такое же (bind, listen, connect, recv, send,...), но если не будешь код портировать на никсы то сразу используй WSA* функции для лучшей читабельности. Это почти всё что тебе нужно. Там у них очень много примеров для каждой функции. Пошаговый мануал что за чем просто гугли, мне вот такой попался: https://firststeps.ru/mfc/net/socket/r.php?1 Книжки не порекомендую, учился по мере потребности из и-нета и документации.
|
|
Зарегистрирован |
Don't worry, be happy.
|
|
|
Artem13 [13-й воин]
Прирожденный Джаец
Ап, и черти у ног моих сели...
Пол: Репутация: +441
|
|
Re: С++ Вопросы и ответы. « Ответ #306 от 03.09.2021 в 09:54:32 » |
|
Ок, сенькс. Попробую.
|
|
Зарегистрирован |
http://www.aap13.narod.ru И пули, что найдет тебя, Ты не услышишь, А остальные мимо пролетят
|
|
|
Ushwood [ДжАдай]
Прирожденный Джаец
May the Force be with you
Пол: Репутация: +562
|
|
Re: С++ Вопросы и ответы. « Ответ #307 от 30.06.2022 в 15:47:55 » |
|
У меня возник вопрос, который в первый момент показался мне очень простым. Но как только я попытался его решить, выяснилось, что я в упор не понимаю, как. Нужно всего-то навсего написать в сишной программе кусочек, который бы проверял, есть ли директория с заданным именем, и если нет, создавал бы ее. Все элементарно. Если бы не один нюанс. Эта программа должна быть трансферабельна с винды (visual studio) на линукс и обратно. А все примеры, которыми забит гугл, работают либо только в VS, либо только в линуксе. В результате сейчас в моей программе вот такой кошмар: Code:/*if(mkdir("dat")==-1) // for Windows systems printf("Error creating dat directory\n"); else printf("Dat directory created\n"); if(mkdir("map")==-1) printf("Error creating map directory\n"); else printf("Map directory created\n"); if(mkdir("conf")==-1) printf("Error creating conf directory\n"); else printf("Conf directory created\n");*/ if(mkdir("dat",0777)==-1){ // for Linux systems printf("Error creating dat directory\n"); } else printf("Dat directory created\n"); if(mkdir("map",0777)==-1){ printf("Error creating map directory\n"); } else printf("Map directory created\n"); if(mkdir("conf",0777)==-1){ printf("Error creating conf directory\n"); } else printf("Conf directory created\n"); |
| и мне приходится вручную комментировать-раскомментировать нужные блоки всякий раз, когда я переношу прогу с одной системы на другую. И плюс еще в линуксе я каждый раз комментирую //#include <direct.h>, а в винде раскомментирую обратно...
|
« Изменён в : 30.06.2022 в 15:48:30 пользователем: Ushwood » |
Зарегистрирован |
Мои текущие переводы: Червь эпилог, версия 03.05.24
|
|
|
Korchy [Непреодолимая сила]
Прирожденный Джаец
Ах, было б только с кем поговорить ...
Пол: Репутация: +663
|
|
Re: С++ Вопросы и ответы. « Ответ #308 от 30.06.2022 в 15:53:54 » |
|
2Ushwood: тупая проверка не поможет? #ifdef _WIN32 // Win #else // lin #endif
|
|
Зарегистрирован |
|
|
|
Lion [Lion. King Lion.]
Welcome to Metavira!
Пол: Репутация: +362
|
|
Re: С++ Вопросы и ответы. « Ответ #310 от 30.06.2022 в 20:32:48 » |
|
30.06.2022 в 19:10:09, Zed писал(a):А ещё лучше сказать, что у нас есть С++17 и не думать про boost А в общем случае Korchy прав, если очень хочется, то системнозависимый код окружают макросами. И тут систем всего-то две. Offtop:А ещё можно выделить объявления функций в один заголовочный файл, а реализации для win и linux разнести по разным файлам и прописать для разных систем сборку разных файлов исходного кода. |
|
|
« Изменён в : 30.06.2022 в 20:54:49 пользователем: Lion » |
Зарегистрирован |
|
|
|
Zed [SIG edition ;)]
A.I.M.Director
Была такая игра Z
Пол: Репутация: +532
|
|
Re: С++ Вопросы и ответы. « Ответ #311 от 30.06.2022 в 20:58:55 » |
|
30.06.2022 в 20:32:48, Lion писал(a):А ещё лучше сказать, что у нас есть С++17 и не думать про boost |
| Этак можно сказать что у нас есть питон или *список языков с функционалом "из коробки"* и плюсы ненужны
|
|
Зарегистрирован |
Кровавый ГБист, душитель свободы.
|
|
|
Lion [Lion. King Lion.]
Welcome to Metavira!
Пол: Репутация: +362
|
|
Re: С++ Вопросы и ответы. « Ответ #312 от 30.06.2022 в 21:05:39 » |
|
2Zed: Ну зависит от задачи. Для некоторых задач проще действительно взять питон. Если выбирать между добавлением буста и апгрейдом стандарта, я бы сначала смотрел, можно ли дёшево сделать второе. А так питон, конечно, многим хорош (особенно с аннотациями типов), только медленно и памяти много идёт.
|
« Изменён в : 30.06.2022 в 21:09:25 пользователем: Lion » |
Зарегистрирован |
|
|
|
Ushwood [ДжАдай]
Прирожденный Джаец
May the Force be with you
Пол: Репутация: +562
|
|
Re: С++ Вопросы и ответы. « Ответ #313 от 01.07.2022 в 11:58:56 » |
|
2Korchy: 2Zed: Спасибо, попробую.
|
|
Зарегистрирован |
Мои текущие переводы: Червь эпилог, версия 03.05.24
|
|
|
Bonarienz [Хороший ариец]
Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!
Репутация: +346
|
|
Re: С++ Вопросы и ответы. « Ответ #315 от 07.12.2022 в 13:35:53 » |
|
2JAggernaut: Инкапсулированные говнокодеры...
|
|
Зарегистрирован |
Deleatur (лат.) - Стереть все, совсем все!
|
|
|
Ushwood [ДжАдай]
Прирожденный Джаец
May the Force be with you
Пол: Репутация: +562
|
|
Re: С++ Вопросы и ответы. « Ответ #316 от 08.02.2023 в 17:31:09 » |
|
У меня в одной из сишных программ возникла какая-то дурацкая ошибка, с которой я никогда раньше не встречался. Программа отказывается открывать текстовый файл для записи. Файловая переменная равна NULL, и программа вылетает. Что я перепробовал (следы этого частично видны на скрине выше): - менял имя файла на какое-то совершенно безобидное; - менял путь (текущая директория, корень разных дисков; место везде есть); - пытался открывать через fopen или через fopen_s; - файловую переменную задавал как локальную или глобальную; - работал в режиме debug и release; - перезагружал Студию, делал полный ребилд проекта (знаю, иногда сама Студия глючит, тогда эти меры обычно помогают); - позакрывал большую часть приложений, так что у меня свободно 7 гигов оперативки, а сама программа жрет 200 мегов. Все это ничего не поменяло . Я в тупике. Не понимаю, в чем ЕЩЕ может быть проблема. ЗЫ. Visual Studio 2015.
|
« Изменён в : 08.02.2023 в 17:40:59 пользователем: Ushwood » |
Зарегистрирован |
Мои текущие переводы: Червь эпилог, версия 03.05.24
|
|
|
Korchy [Непреодолимая сила]
Прирожденный Джаец
Ах, было б только с кем поговорить ...
Пол: Репутация: +663
|
|
Re: С++ Вопросы и ответы. « Ответ #317 от 08.02.2023 в 18:49:57 » |
|
путь абсолютным попробовать задать?
|
|
Зарегистрирован |
|
|
|
pipetz [пипец всему!]
Прирожденный Джаец
Я очень люблю этот Форум!
Пол: Репутация: +303
|
|
Re: С++ Вопросы и ответы. « Ответ #318 от 08.02.2023 в 19:08:05 » |
|
08.02.2023 в 18:49:57, Korchy писал(a):путь абсолютным попробовать задать? |
| Или может прав нет на запись. Запустить от имени администратора.
|
|
Зарегистрирован |
- Джаец? - Джаиц, джаиц. - Ну, джаец, ну погоди! https://github.com/egorovav/Ja2Project/releases
|
|
|
Терапевт [Человек в чёрном]
Народный целитель. Шарлатан высшей категории.
Пол: Репутация: +1191
|
|
Re: С++ Вопросы и ответы. « Ответ #319 от 08.02.2023 в 20:55:05 » |
|
08.02.2023 в 17:31:09, Ushwood писал(a):Файловая переменная равна NULL, и программа вылетает. |
| Это fopen возвращает NULL, что свидетельствует об ошибке. Попробуй получить информацию об ошибке с помощью функции GetLastError(). https://learn.microsoft.com/ru-ru/windows/win32/debug/retrieving-the-las...
|
|
Зарегистрирован |
Весна! Я уже не грею пиво! (с) В.Цой
|
|
|
pipetz [пипец всему!]
Прирожденный Джаец
Я очень люблю этот Форум!
Пол: Репутация: +303
|
|
Re: С++ Вопросы и ответы. « Ответ #320 от 08.02.2023 в 21:46:34 » |
|
У меня такая прога отработала. Разработал в блокноте, компилировал GNU gcc версии 6.3.0. 08.02.2023 в 20:55:05, автор писал(a): #include <stdio.h> int main() { output(); return 0; } void output() { FILE *out2; out2 = fopen("out.dat", "w"); fputs("Hello, World!", out2); fclose(out2); } |
|
|
« Изменён в : 08.02.2023 в 21:47:43 пользователем: pipetz » |
Зарегистрирован |
- Джаец? - Джаиц, джаиц. - Ну, джаец, ну погоди! https://github.com/egorovav/Ja2Project/releases
|
|
|
Ushwood [ДжАдай]
Прирожденный Джаец
May the Force be with you
Пол: Репутация: +562
|
|
Re: С++ Вопросы и ответы. « Ответ #321 от 08.02.2023 в 22:43:18 » |
|
08.02.2023 в 18:49:57, Korchy писал(a):путь абсолютным попробовать задать? |
| И абсолютным (там в предыдущих строках это видно), и относительным. 08.02.2023 в 21:46:34, pipetz писал(a):У меня такая прога отработала. |
| Естественно. Она и должна была отработать. Я пытаюсь понять, что могло пойти не так, из-за чего она не отработала у меня. Естественно, кусок, который я привел, - это не вся программа. Но я понятия не имею, что в других ее местах могло привести к несрабатыванию в этом месте. 08.02.2023 в 19:08:05, pipetz писал(a):Или может прав нет на запись. |
| Есть права на запись. Собственно, эта же программа ранее (из другой функции) благополучно открыла файл на запись. 08.02.2023 в 20:55:05, Терапевт писал(a):Попробуй получить информацию об ошибке с помощью функции GetLastError(). |
| Спасибо, попробую.
|
|
Зарегистрирован |
Мои текущие переводы: Червь эпилог, версия 03.05.24
|
|
|
pipetz [пипец всему!]
Прирожденный Джаец
Я очень люблю этот Форум!
Пол: Репутация: +303
|
|
Re: С++ Вопросы и ответы. « Ответ #322 от 08.02.2023 в 22:59:08 » |
|
08.02.2023 в 22:43:18, Ushwood писал(a):Я пытаюсь понять, что могло пойти не так, из-за чего она не отработала у меня. |
| Пришли расшифровку ДНК.
|
|
Зарегистрирован |
- Джаец? - Джаиц, джаиц. - Ну, джаец, ну погоди! https://github.com/egorovav/Ja2Project/releases
|
|
|
Lion [Lion. King Lion.]
Welcome to Metavira!
Пол: Репутация: +362
|
|
Re: С++ Вопросы и ответы. « Ответ #323 от 08.02.2023 в 23:20:24 » |
|
2Ushwood: Стоит попробовать получить код ошибки, как уже писал Терапевт. Кроме того может иметь смысл запускать программу не из студии. Ещё я бы проверил, что не происходит нескольких подряд попыток открыть один и тот же незакрытый файл.
|
|
Зарегистрирован |
|
|
|
Ushwood [ДжАдай]
Прирожденный Джаец
May the Force be with you
Пол: Репутация: +562
|
|
Re: С++ Вопросы и ответы. « Ответ #324 от 09.02.2023 в 17:34:13 » |
|
08.02.2023 в 20:55:05, Терапевт писал(a):То ли лыжи не едут... Вставил функцию по этой ссылке в начало программы, вставил строку if(!GetProcessId(NULL)) ErrorExit(TEXT("GetProcessId")); после того самого fopen, запустил ииии... прога вылетела внутри этой самой функции.
|
|
Зарегистрирован |
Мои текущие переводы: Червь эпилог, версия 03.05.24
|
|
|
Ushwood [ДжАдай]
Прирожденный Джаец
May the Force be with you
Пол: Репутация: +562
|
|
Re: С++ Вопросы и ответы. « Ответ #325 от 09.02.2023 в 19:01:55 » |
|
Следующая серия. В попытке обойти проблему я убрал эту функцию вообще, открыл файл на запись в самом начале программы (и закрыл в самом конце). Прога немного поработала, потом вылетела с сообщением "Куча была повреждена". Чувствую, теперь я буду дооолго искать, где именно и что я натворил с кучей...
|
|
Зарегистрирован |
Мои текущие переводы: Червь эпилог, версия 03.05.24
|
|
|
Терапевт [Человек в чёрном]
Народный целитель. Шарлатан высшей категории.
Пол: Репутация: +1191
|
|
Re: С++ Вопросы и ответы. « Ответ #326 от 09.02.2023 в 19:03:06 » |
|
2Ushwood: Нужно было вызвать ErrorExit(TEXT("output")) после out2 = fopen("out.dat", "w"); Но чтобы не разбираться с возникшей ошибкой, напиши вызов так ... out2 = fopen("out.dat", "w"); DWORD dw = GetLastError(); ... и посмотри отладчиком, какой код будет в dw. Расшифровка кодов тут: https://learn.microsoft.com/en-us/windows/win32/debug/system-error-codes...
|
|
Зарегистрирован |
Весна! Я уже не грею пиво! (с) В.Цой
|
|
|
Терапевт [Человек в чёрном]
Народный целитель. Шарлатан высшей категории.
Пол: Репутация: +1191
|
|
Re: С++ Вопросы и ответы. « Ответ #327 от 09.02.2023 в 19:34:30 » |
|
09.02.2023 в 19:01:55, Ushwood писал(a):Прога немного поработала, потом вылетела с сообщением "Куча была повреждена". |
| Похоже на результат бесконтрольного рекурсивного (сама себя) вызова какой-то функции.
|
|
Зарегистрирован |
Весна! Я уже не грею пиво! (с) В.Цой
|
|
|
Ushwood [ДжАдай]
Прирожденный Джаец
May the Force be with you
Пол: Репутация: +562
|
|
Re: С++ Вопросы и ответы. « Ответ #328 от 10.02.2023 в 12:42:08 » |
|
Рекурсивных функций у меня нет. А вот динамические массивы есть, и имел место выход за границы одного из них. Дело раскрыто. Спасибо всем, кто помогал .
|
|
Зарегистрирован |
Мои текущие переводы: Червь эпилог, версия 03.05.24
|
|
|
Терапевт [Человек в чёрном]
Народный целитель. Шарлатан высшей категории.
Пол: Репутация: +1191
|
|
Re: С++ Вопросы и ответы. « Ответ #329 от 10.02.2023 в 13:03:52 » |
|
10.02.2023 в 12:42:08, Ushwood писал(a):А вот динамические массивы есть |
| Очень интересно. Только в Си нет готовых динамических массивов. Подобные штуки реализуются вручную через динамическое выделение памяти с помощью malloc().
|
|
Зарегистрирован |
Весна! Я уже не грею пиво! (с) В.Цой
|
|
|
Bonarienz [Хороший ариец]
Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!
Репутация: +346
|
|
Re: С++ Вопросы и ответы. « Ответ #330 от 10.02.2023 в 13:07:08 » |
|
2Ushwood: Лучше быть олигофреном И пить водддку прям с утра Чем складАть олигомеры В динамический массив!.. 2Терапевт: Он же хымик, а не софтюк...
|
« Изменён в : 10.02.2023 в 13:09:31 пользователем: Bonarienz » |
Зарегистрирован |
Deleatur (лат.) - Стереть все, совсем все!
|
|
|
Терапевт [Человек в чёрном]
Народный целитель. Шарлатан высшей категории.
Пол: Репутация: +1191
|
|
Re: С++ Вопросы и ответы. « Ответ #331 от 10.02.2023 в 13:25:19 » |
|
10.02.2023 в 13:07:08, Bonarienz писал(a):Он же хымик, а не софтюк... |
| Одно другому не мешает. Я тоже профессионально никогда на Си не писал. Для меня это хобби.
|
|
Зарегистрирован |
Весна! Я уже не грею пиво! (с) В.Цой
|
|
|
Bonarienz [Хороший ариец]
Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!
Репутация: +346
|
|
Re: С++ Вопросы и ответы. « Ответ #332 от 10.02.2023 в 15:13:12 » |
|
2Терапевт: СиКуЭльщик нищасный!
|
|
Зарегистрирован |
Deleatur (лат.) - Стереть все, совсем все!
|
|
|
Ushwood [ДжАдай]
Прирожденный Джаец
May the Force be with you
Пол: Репутация: +562
|
|
Re: С++ Вопросы и ответы. « Ответ #333 от 10.02.2023 в 18:18:19 » |
|
10.02.2023 в 13:03:52, Терапевт писал(a):Подобные штуки реализуются вручную через динамическое выделение памяти с помощью malloc(). |
| Именно так и делал.
|
|
Зарегистрирован |
Мои текущие переводы: Червь эпилог, версия 03.05.24
|
|
|
Bonarienz [Хороший ариец]
Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!
Репутация: +346
|
|
Re: С++ Вопросы и ответы. « Ответ #334 от 10.02.2023 в 19:44:48 » |
|
2Ushwood: "Уж вы там добалуетесь, уж вы доизвлекаетесь!.."
|
|
Зарегистрирован |
Deleatur (лат.) - Стереть все, совсем все!
|
|
|
Zed [SIG edition ;)]
A.I.M.Director
Была такая игра Z
Пол: Репутация: +532
|
|
Re: С++ Вопросы и ответы. « Ответ #335 от 10.02.2023 в 20:48:53 » |
|
2Bonarienz: Завидуй молча.
|
|
Зарегистрирован |
Кровавый ГБист, душитель свободы.
|
|
|
Bonarienz [Хороший ариец]
Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!
Репутация: +346
|
|
Re: С++ Вопросы и ответы. « Ответ #336 от 10.02.2023 в 22:58:05 » |
|
2Zed: Товарищ Председатель! Мы не завидуем (никогда и никому!), мы неспешно грызем Яву. И фильтр, и язык (sic!)... И ужо понимаем про инкапсуляцию - ведь олигомеры - это именно она... По ЗСЭ...
|
|
Зарегистрирован |
Deleatur (лат.) - Стереть все, совсем все!
|
|
|
|