A.I.M. Jagged Alliance2

Добро пожаловать, Гость. Пожалуйста, выберите:
Вход || Регистрация.
23.04.2024 в 09:22:29

Главная Главная Помощь Помощь Поиск Поиск Участники Участники Вход Вход Регистрация Регистрация
A.I.M. « С++ Вопросы и ответы. »
   A.I.M.
   Генерал
   Ъ и Ь
(Модераторы: Zed, cha, Снайпер)
   С++ Вопросы и ответы.
« Предыдущая Тема | Следующая Тема »
  Тема:  С++ Вопросы и ответы.             Страниц:  1     « Открыть сокрытое! »Прочитано 49319 раз
pipetz
[пипец всему!]
Прирожденный Джаец

Я очень люблю этот Форум!


Ё-мэйл

Пол:
Репутация: +303
Re: С++ Вопросы и ответы.
« Ответ #244 от 21.03.2018 в 22:51:40 »

21.03.2018 в 18:57:30, Ushwood писал(a):
Системное время не успеет сдвинуться

Ну это тебе виднее, конечно, успеет у тебя сдвинуться или нет.
 
21.03.2018 в 20:25:31, Zed писал(a):
Так делать нельзя потому что будет ухудшена случайность распределения.  

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

- Джаец?
- Джаиц, джаиц.
- Ну, джаец, ну погоди!
https://github.com/egorovav/Ja2Project/releases

Ushwood
[ДжАдай]
Прирожденный Джаец

May the Force be with you


WWW Ё-мэйл

Пол:
Репутация: +562
Re: С++ Вопросы и ответы.
« Ответ #245 от 14.05.2018 в 16:45:57 »

21.03.2018 в 20:25:31, Zed писал(a):
А вот по этой ссылке как с этим жить можно жить на Windows
https://msdn.microsoft.com/en-us/library/bb982398.aspx
 
А есть ли какие-нибудь идеи, как с этим можно жить на Линуксе?
Зарегистрирован

Мои текущие переводы:
Червь эпилог, версия 23.04.24

Zed
[SIG edition ;)]
A.I.M.Director

Была такая игра Z


Ё-мэйл

Пол:
Репутация: +532
Re: С++ Вопросы и ответы.
« Ответ #246 от 15.05.2018 в 11:39:32 »

2Ushwood:  
а есть какая то проблема? Где затык то получился?
А так вызывай http://man7.org/linux/man-pages/man2/getrandom.2.html
и радуйся жизни.
Зарегистрирован

Кровавый ГБист, душитель свободы.
Ushwood
[ДжАдай]
Прирожденный Джаец

May the Force be with you


WWW Ё-мэйл

Пол:
Репутация: +562
Re: С++ Вопросы и ответы.
« Ответ #247 от 20.05.2018 в 14:42:19 »

2Zed: извиняй, что долго не отвечал, просто как-то внезапно стало не до этого.
 
 15.05.2018 в 11:39:32, Zed писал(a):
а есть какая то проблема? Где затык то получился?  
Проблема в том, что то решение, похоже, сугубо для ВижуалСтудии, и при попытке скомпилировать его на линуксе компилятор пишет, что знать не знает такого зверя, как random_device, ну и всех последующих.
 
 15.05.2018 в 11:39:32, Zed писал(a):
А так вызывай http://man7.org/linux/man-pages/man2/getrandom.2.html
и радуйся жизни.  
Это я пока не делал,. потому что см. начало поста. Как сделаю, отпишусь, что такое хорошо и что такое плохо.
Зарегистрирован

Мои текущие переводы:
Червь эпилог, версия 23.04.24

Ushwood
[ДжАдай]
Прирожденный Джаец

May the Force be with you


WWW Ё-мэйл

Пол:
Репутация: +562
Re: С++ Вопросы и ответы.
« Ответ #248 от 14.02.2019 в 18:59:54 »

Камрады, помогите, пожалуйста, разобраться с проблемой.
 
Есть вот такой код:
Code:
#include <iostream>
#include <iomanip>
#include <string>
#include <map>
#include <random>
#include <cmath>
 
const int mapsize = 8127;
const int maxboxes1type = 2000000;  // max number of matrix boxes of certain type
 
FILE *in;
int i, j, k;
float *map1aa, *map10, *map1ii, *map1ai, *map1aaai, *map1iiai, *map1aaiiai, *map1h;
int aig[2][mapsize][2], aing[2][mapsize][2];  // 1st index - for different activity thresholds, 3rd - inactive(0)/active(1)
double expr[mapsize];  // sum expression level of all genes in the segment.
double exprnongene[10][mapsize]; // sum expression level of all nongenes in the segment, divided into types.
double cntnum_actinact[2][mapsize][5];  // in 2nd index: 1st field - total length of active genes in the bin, 2nd - of inactive genes, 3rd - of active NONgenes, 4th - of inactive NONgenes, 5th - of empty space
double distr_cnt_type[7][maxboxes1type]; // 1st index: aa, ii, 00, ai, a0, i0, complex
 
void init()
{
      map10 = (float*)malloc(mapsize * mapsize * sizeof(float));
      map1aa = (float*)malloc(mapsize * mapsize * sizeof(float));
      map1ii = (float*)malloc(mapsize * mapsize * sizeof(float));
      map1ai = (float*)malloc(mapsize * mapsize * sizeof(float));
      map1aaai = (float*)malloc(mapsize * mapsize * sizeof(float));
      map1iiai = (float*)malloc(mapsize * mapsize * sizeof(float));
      map1aaiiai = (float*)malloc(mapsize * mapsize * sizeof(float));
      map1h = (float*)malloc(mapsize * mapsize * sizeof(float));
      for (i = 0; i < 2; i++) for (j = 0; j < mapsize; j++) for (k = 0; k < 2; k++) aig[i][j][k] = aing[i][j][k] = 0;
      for (j = 0; j < mapsize; j++) expr[j] = 0;
      for (j = 0; j < mapsize; j++) for (k = 0; k<10; k++) exprnongene[k][j] = 0;
      for (j = 0; j < mapsize; j++) for (k = 0; k < mapsize; k++) {
            *(map10 + j*mapsize + k) = *(map1aa + j*mapsize + k) = -1;
            *(map1ii + j*mapsize + k) = *(map1ai + j*mapsize + k) = -1;
            *(map1aaai + j*mapsize + k) = *(map1iiai + j*mapsize + k) = -1;
            *(map1aaiiai + j*mapsize + k) = *(map1h + j*mapsize + k) = -1;
      }
      for (i = 0; i < mapsize; i++) for (j = 0; j < 5; j++) cntnum_actinact[0][i][j] = cntnum_actinact[1][i][j] = 0;
      for (i = 0; i < maxboxes1type; i++) for (j = 0; j < 7; j++) distr_cnt_type[j][i] = -1;
}
 
int main()
{
      init();
      free(map10);
      free(map1aa);
      free(map1ii);
      free(map1ai);
      free(map1aaai);
      free(map1iiai);
      free(map1aaiiai);
      free(map1h);
}

 
Это небольшой фрагмент моей прграммы (только инициализатор переменных). Прога работала при сравнительно небольших значениях mapsize (около 1000), но с 8000 она вылетает. На 36 строке, вот этой:
*(map1aaai + j*mapsize + k) = *(map1iiai + j*mapsize + k) = -1;
с диагнозом "access violation writing location".
 
Я понимаю, что это какие-то проблемы с памятью, но впервые сталкиваюсь именно с таким их проявлением. Обычно прога либо на стадии компиляции выдает ошибку, что я слишком много памяти прошу, либо вылетает на входе в какую-нибудь функцию со словами "stack overflow".
 
Подскажите, пожалуйста, что конкретно ей не нравится и как с этим можно бороться.
Уменьшить mapsize не вариант, т.е. задача - не уменьшить количество потребляемой памяти (я и так его уменьшил, заменив double на float), а убедить прогу выполняться вот с таким, какое есть.
 
Работаю в Visual Studio 2015.
 
ЗЫ. В первоначальной версии программы все вот эти map1... были двумерными массивами, но там было ровно то же самое: прога компилируется, потом вылетает с этим же диагнозом. Я переписал на указатели в надежде, что поможет, - не помогло.
« Изменён в : 14.02.2019 в 19:04:22 пользователем: Ushwood » Зарегистрирован

Мои текущие переводы:
Червь эпилог, версия 23.04.24

jarni
[Гарный хлопец]
Прирожденный Джаец

Мне нечего сказать.


Ё-мэйл

Пол:
Репутация: +306
Re: С++ Вопросы и ответы.
« Ответ #249 от 14.02.2019 в 19:04:29 »

Или компилируй как х64, или попробуй включить LARGE_ADDRESS_AWARE в настройках линкера (или компилятора, не помню). Ты создал массивов на больше чем 2ГБ, без LARGE_ADDRESS_AWARE ты можешь обращаться как раз к адресам до двух ГБ.
Зарегистрирован

Don't worry, be happy.
Ushwood
[ДжАдай]
Прирожденный Джаец

May the Force be with you


WWW Ё-мэйл

Пол:
Репутация: +562
Re: С++ Вопросы и ответы.
« Ответ #250 от 14.02.2019 в 19:47:38 »

2jarni: скомпилировал как х64 - по крайней мере, вот этот тестовый кусочек прошел не пикнув.
Ларчик, как выяснилось, просто открывался.
Спасибо!
Зарегистрирован

Мои текущие переводы:
Червь эпилог, версия 23.04.24

Psyho
[ПсихоПакос :))]
Прирожденный Джаец

Я сказал в морг, значит в морг


Ё-мэйл

Пол:
Репутация: +184
Re: С++ Вопросы и ответы.
« Ответ #251 от 21.02.2019 в 23:41:44 »

2Ushwood: Ты жесток. Используй механизм отображения памяти в файл. А то чую при твоих запросах тебе никакой памяти не хватит. Ибо задачи имеют свойство расширяться :-)
Зарегистрирован

Почему не выпускают швейцарских ножей для сисадмина? Чтоб в наборе крестовая отвертка, флешка, паяльник, обжимник, мини-ствол с одним патроном и гравировкой "себе или главбуху"..
Ushwood
[ДжАдай]
Прирожденный Джаец

May the Force be with you


WWW Ё-мэйл

Пол:
Репутация: +562
Re: С++ Вопросы и ответы.
« Ответ #252 от 23.02.2019 в 17:07:58 »

21.02.2019 в 23:41:44, Psyho писал(a):
Ты жесток. Используй механизм отображения памяти в файл
Ну я примерно так и делаю, когда размер mapsize переваливает за 10-20 тысяч :). Но это очень негативно сказывается на быстродействии (не могу себе позволить работать полностью на SSD), поэтому если есть возможность этого не делать, стараюсь не делать.
Зарегистрирован

Мои текущие переводы:
Червь эпилог, версия 23.04.24

ПМ
[JA'ец. Настоящий. Одна штука :]


Джаец - НОчник




Пол:
Репутация: +704
Re: С++ Вопросы и ответы.
« Ответ #253 от 14.06.2019 в 18:40:13 »

Сел говнокодить редактор IMP, и возник вопрос.
Там в структуре мерка MERCPROFILESTRUCT имя и ник мерка объявлены как
      UINT16      zName[ NAME_LENGTH ];
      UINT16      zNickname[ NICKNAME_LENGTH ];
то бишь как массивы из unsigned short 16 бит.
Как эту хрень красиво в текст гонять и обратно?
Вроде бы псевдоюникод, но в лоб не хочет.
« Изменён в : 14.06.2019 в 18:41:51 пользователем: ПМ » Зарегистрирован

Детство без Интернета - это лучшее, что могла подарить нам жизнь.
jarni
[Гарный хлопец]
Прирожденный Джаец

Мне нечего сказать.


Ё-мэйл

Пол:
Репутация: +306
Re: С++ Вопросы и ответы.
« Ответ #254 от 14.06.2019 в 18:43:29 »

2ПМ: А что там на самом деле? Если таки юникод, то просто reinterpret_cast используй. Если нет, то напиши 2 функции для конвертации туда/обратно.
Зарегистрирован

Don't worry, be happy.
ПМ
[JA'ец. Настоящий. Одна штука :]


Джаец - НОчник




Пол:
Репутация: +704
Re: С++ Вопросы и ответы.
« Ответ #255 от 14.06.2019 в 18:55:42 »

2jarni:  
typedef unsigned short UINT16;
 14.06.2019 в 18:40:13, ПМ писал(a):
то бишь как массивы из unsigned short 16 бит.  

Гонять надо в строку юникода (поле визуального компонента), и обратно.
Зарегистрирован

Детство без Интернета - это лучшее, что могла подарить нам жизнь.
jarni
[Гарный хлопец]
Прирожденный Джаец

Мне нечего сказать.


Ё-мэйл

Пол:
Репутация: +306
Re: С++ Вопросы и ответы.
« Ответ #256 от 14.06.2019 в 18:58:11 »

2ПМ: Не, это я понял. Но что там в этих двух байтах, если не юникод? Не вин1251 ведь.
Зарегистрирован

Don't worry, be happy.
ПМ
[JA'ец. Настоящий. Одна штука :]


Джаец - НОчник




Пол:
Репутация: +704
Re: С++ Вопросы и ответы.
« Ответ #257 от 14.06.2019 в 19:13:04 »

2jarni:  
 
Младший байт - символ, старший 00.
 

Вот прицепился!       IMP-2.jpg
Зарегистрирован

Детство без Интернета - это лучшее, что могла подарить нам жизнь.
jarni
[Гарный хлопец]
Прирожденный Джаец

Мне нечего сказать.


Ё-мэйл

Пол:
Репутация: +306
Re: С++ Вопросы и ответы.
« Ответ #258 от 14.06.2019 в 20:01:51 »

2ПМ: Ну, с английскими буквами всё понятно. В памяти лежит как LittleEndian, младшый байт занят. А какие ещё туда символы будут записываться? Русские? Если да, то WIN-1251? То есть так и останеться один байт занят?
 
Если да, то проще всего схлопывать из двух байт в один, а потом пользоваться MultiByteToWideChar\WideCharToMultiByte. Здесь хороший пример: https://www.chilkatsoft.com/p/p_348.asp . Только вместо CP_UTF8, использовать CP_ACP или прямо 1251.
Зарегистрирован

Don't worry, be happy.
Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: С++ Вопросы и ответы.
« Ответ #259 от 14.06.2019 в 20:29:20 »

2jarni:  
 
О!!! Здрав будь, мОлодец!!!
 
А с обработкой анимаций поможешь ли? Кой-чо автоматизировать? Все доки доступны, и на аглицком.
Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
ПМ
[JA'ец. Настоящий. Одна штука :]


Джаец - НОчник




Пол:
Репутация: +704
Re: С++ Вопросы и ответы.
« Ответ #260 от 14.06.2019 в 20:30:41 »

14.06.2019 в 20:01:51, jarni писал(a):
схлопывать из двух байт в один

Как именно, и как потом загонять обратно именно в unsigned short?
 
В примере работа с кодировками строк, а у меня одна половинка именно что не строка.
Как мне эту "не строку" перевести в строковый тип?
Зарегистрирован

Детство без Интернета - это лучшее, что могла подарить нам жизнь.
jarni
[Гарный хлопец]
Прирожденный Джаец

Мне нечего сказать.


Ё-мэйл

Пол:
Репутация: +306
Re: С++ Вопросы и ответы.
« Ответ #261 от 14.06.2019 в 20:31:40 »

2Bonarienz:  14.06.2019 в 20:29:20, Bonarienz писал(a):
А с обработкой анимаций поможешь ли?
Разве что советом. Я свою часть в ОП-2.1 никак "доделать" не могу, летняя лень пришла.
Зарегистрирован

Don't worry, be happy.
ПМ
[JA'ец. Настоящий. Одна штука :]


Джаец - НОчник




Пол:
Репутация: +704
Re: С++ Вопросы и ответы.
« Ответ #262 от 14.06.2019 в 20:48:43 »

2jarni:  
Я тормоз. А что я зациклился на оригинальном типе данных? Я же к игре не привязан. Мне главное размерность соблюсти.
Меняю прямо в структуре UINT16 на wchar_t, и все... : idea :
 
Зарегистрирован

Детство без Интернета - это лучшее, что могла подарить нам жизнь.
jarni
[Гарный хлопец]
Прирожденный Джаец

Мне нечего сказать.


Ё-мэйл

Пол:
Репутация: +306
Re: С++ Вопросы и ответы.
« Ответ #263 от 14.06.2019 в 20:49:11 »

14.06.2019 в 20:30:41, ПМ писал(a):
Как именно, и как потом загонять обратно именно в unsigned short?
Ну вот так например:
 
Code:
//! ensure that src length <= dst length in items, not bytes
void pack(const uint16_t* src, char* dst)
{
 while (*src)
  *dst++ = (char)(*src++);
 *dst = 0;
}
 
//! ensure that src length <= dst length in items, not bytes
void unpack(const char* src, uint16_t* dst)
{
 while (*src)
  *dst++ = (uint16_t)(*src++);
 *dst = 0;
}

 
Ну или если не брезгуешь лямбдами и STL функциями то так:
Code:

//! uint16_t -> char
std::transform(src, src + strlen(src), dst, [](uint16_t c) -> char { return (char)c; });
//! char -> uint16_t
std::transform(src, src + strlen(src), dst, [](char c) -> uint16_t { return (uint16_t)c; });
Зарегистрирован

Don't worry, be happy.
Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: С++ Вопросы и ответы.
« Ответ #264 от 14.06.2019 в 20:58:05 »

2ПМ:  
 
Ибо нефих с дитями шалить, кады кодишь!!!
 
2jarni:  
 
Что такое "ОП-2.1"?
 
Речь о java-скриптах или приблудах на Си к фотожопе. Все алгоритмы есть, некоторые неполны, и без спец-модулей не работают - например, обводка только слева черной линией в пиксел контрастного изображения. Как делать ясно, но вот штатных струментофф не хватает, а рук и времени - жалко...
Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
jarni
[Гарный хлопец]
Прирожденный Джаец

Мне нечего сказать.


Ё-мэйл

Пол:
Репутация: +306
Re: С++ Вопросы и ответы.
« Ответ #265 от 14.06.2019 в 20:59:06 »

2ПМ:  14.06.2019 в 20:48:43, ПМ писал(a):
и все...
Только при условии что там именно юникод и сохранялся.
 
Потому что "джа" в юникоде это "\u0434\u0436\u0430", а в UTF-8 это "d0b4 d0b6 d0b0", те же 3 раза по 2 байта, но контент разный.
Зарегистрирован

Don't worry, be happy.
ПМ
[JA'ец. Настоящий. Одна штука :]


Джаец - НОчник




Пол:
Репутация: +704
Re: С++ Вопросы и ответы.
« Ответ #266 от 14.06.2019 в 21:01:58 »

2jarni:  
Русский текст корректно грузится/сохраняется, и в игре отображается правильно - а мне больше ничего и не надо. Так что это реально эмуляция юникода.
Зарегистрирован

Детство без Интернета - это лучшее, что могла подарить нам жизнь.
jarni
[Гарный хлопец]
Прирожденный Джаец

Мне нечего сказать.


Ё-мэйл

Пол:
Репутация: +306
Re: С++ Вопросы и ответы.
« Ответ #267 от 14.06.2019 в 21:02:07 »

2Bonarienz:  14.06.2019 в 20:58:05, Bonarienz писал(a):
а рук и времени - жалко...
А моих рук и времени значиццо не жалко ;D
 
Я в жаба-скрипте только самые примитивные вещи делать могу. На С лучше, конечно. Ты конкретный пример дай.
Зарегистрирован

Don't worry, be happy.
Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: С++ Вопросы и ответы.
« Ответ #268 от 14.06.2019 в 21:14:04 »

2jarni:  
 
ОК!
Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
jarni
[Гарный хлопец]
Прирожденный Джаец

Мне нечего сказать.


Ё-мэйл

Пол:
Репутация: +306
Re: С++ Вопросы и ответы.
« Ответ #269 от 14.06.2019 в 21:18:21 »

2Bonarienz:  14.06.2019 в 20:58:05, Bonarienz писал(a):
Что такое "ОП-2.1"?  
Забыл ответить. Мод для Сталкера, Объединённый Пак 2.1. Помогаю там с движком, в частности переводом его на х64.
Зарегистрирован

Don't worry, be happy.
Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: С++ Вопросы и ответы.
« Ответ #270 от 14.06.2019 в 21:31:12 »

2jarni:  
Уйпля!!!
Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
ПМ
[JA'ец. Настоящий. Одна штука :]


Джаец - НОчник




Пол:
Репутация: +704
Re: С++ Вопросы и ответы.
« Ответ #271 от 15.06.2019 в 18:23:22 »

2jarni:  
А вот с кодировкой не английского текста в ITEMDESC.EDT беда, придется все же заморачиваться с приведенным тобой примером. Пичаль...  
 

Вот прицепился!       IMPs.jpg
« Изменён в : 15.06.2019 в 18:29:51 пользователем: ПМ » Зарегистрирован

Детство без Интернета - это лучшее, что могла подарить нам жизнь.
jarni
[Гарный хлопец]
Прирожденный Джаец

Мне нечего сказать.


Ё-мэйл

Пол:
Репутация: +306
Re: С++ Вопросы и ответы.
« Ответ #272 от 15.06.2019 в 18:25:09 »

2ПМ: Ожидаемо. Ну, функции у тебя есть. Пробуй.
Зарегистрирован

Don't worry, be happy.
ПМ
[JA'ец. Настоящий. Одна штука :]


Джаец - НОчник




Пол:
Репутация: +704
Re: С++ Вопросы и ответы.
« Ответ #273 от 15.06.2019 в 20:58:33 »

2jarni:  
Прикрутилось как родное. Еще раз спасибо.
 

 

Вот прицепился!       IMPss.jpg
Зарегистрирован

Детство без Интернета - это лучшее, что могла подарить нам жизнь.
jarni
[Гарный хлопец]
Прирожденный Джаец

Мне нечего сказать.


Ё-мэйл

Пол:
Репутация: +306
Re: С++ Вопросы и ответы.
« Ответ #274 от 15.06.2019 в 21:13:04 »

2ПМ: : up :
 
Спасибо большое за новый редактор, всё старое было слишком... старое :).
« Изменён в : 15.06.2019 в 21:13:57 пользователем: jarni » Зарегистрирован

Don't worry, be happy.
Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: С++ Вопросы и ответы.
« Ответ #275 от 15.06.2019 в 21:29:23 »

2ПМ:  
 
Ты - гигант!
 
НО где аглицкий, фрицевский и лягушатниковый интерфейсы?
 
А майку со штанцами стоит сётаки к благообразию привести... А то фня кака-то невнятная...
 
2jarni:  
 
Ты - тоже гигант!!!
« Изменён в : 15.06.2019 в 21:31:03 пользователем: Bonarienz » Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Artem13
[13-й воин]
Прирожденный Джаец

Ап, и черти у ног моих сели...


WWW Ё-мэйл

Пол:
Репутация: +441
Re: С++ Вопросы и ответы.
« Ответ #276 от 20.06.2019 в 12:03:22 »

15.06.2019 в 21:29:23, Bonarienz писал(a):
А майку со штанцами стоит сётаки к благообразию привести... А то фня кака-то невнятная...  

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

Artem13.gif
http://www.aap13.narod.ru
И пули, что найдет тебя,
Ты не услышишь,
А остальные мимо пролетят

Artem13
[13-й воин]
Прирожденный Джаец

Ап, и черти у ног моих сели...


WWW Ё-мэйл

Пол:
Репутация: +441
Re: С++ Вопросы и ответы.
« Ответ #277 от 20.06.2019 в 12:04:33 »

2ПМ: может имеет смысел ИД предмета в скобки загнать, а то 6 ПМ в руках смотрятся несколько сюрреалистически :)
Зарегистрирован

Artem13.gif
http://www.aap13.narod.ru
И пули, что найдет тебя,
Ты не услышишь,
А остальные мимо пролетят

Green Eyesman
[Добрый волшебник]
Прирожденный Джаец

Иногда мне дико не хватает мозгов.


WWW Ё-мэйл

Пол:
Репутация: +675
Re: С++ Вопросы и ответы.
« Ответ #278 от 20.06.2019 в 12:08:55 »

2ПМ: А можно такой же, но для предметов (или уже есть)?
Зарегистрирован

Модельки от меня.
ПМ
[JA'ец. Настоящий. Одна штука :]


Джаец - НОчник




Пол:
Репутация: +704
Re: С++ Вопросы и ответы.
« Ответ #279 от 20.06.2019 в 12:37:02 »

20.06.2019 в 12:04:33, Artem13 писал(a):
ИД предмета в скобки загнать

Гляну, как будет смотреться. Действительно, пробела маловато будет..
 
 20.06.2019 в 12:08:55, Green Eyesman писал(a):
А можно такой же, но для предметов

Лучше Excel все равно не получится.  :P
Написать такой редактор в принципе можно, но какой в нем смысл? Даже в Метавире совсем другой формат файла ттх.
« Изменён в : 20.06.2019 в 12:37:33 пользователем: ПМ » Зарегистрирован

Детство без Интернета - это лучшее, что могла подарить нам жизнь.
ПМ
[JA'ец. Настоящий. Одна штука :]


Джаец - НОчник




Пол:
Репутация: +704
Re: С++ Вопросы и ответы.
« Ответ #280 от 20.06.2019 в 12:44:50 »

Да, пожалуй скобочки уместны. Тока квадратные лучше смотрятся.
 

Вот прицепился!       IMP2.jpg
Зарегистрирован

Детство без Интернета - это лучшее, что могла подарить нам жизнь.
Legend
[Переводчик]
Прирожденный Джаец

надА


Ё-мэйл

Пол:
Репутация: +864
Re: С++ Вопросы и ответы.
« Ответ #281 от 20.06.2019 в 13:50:55 »

2ПМ: Имхую, что в ИМПере было логичнее с отдельным окном для ID и отдельным для названия, желательно с алфавитной сортировкой - подсмотрел в ёкселе номер и вбил, или тупо по первым буквам названия нашёл. А то поиск становится уж очень муторным, мышка на колёсико жалуется.
Зарегистрирован

- Удельный вес ядра твоей планеты думай!
- Эээ...

ПМ
[JA'ец. Настоящий. Одна штука :]


Джаец - НОчник




Пол:
Репутация: +704
Re: С++ Вопросы и ответы.
« Ответ #282 от 20.06.2019 в 15:09:16 »

20.06.2019 в 13:50:55, Legend писал(a):
логичнее с отдельным окном для ID

Можно и так.
 20.06.2019 в 13:50:55, Legend писал(a):
желательно с алфавитной сортировкой

А вот это уже никак.
Зарегистрирован

Детство без Интернета - это лучшее, что могла подарить нам жизнь.
Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: С++ Вопросы и ответы.
« Ответ #283 от 20.06.2019 в 15:54:21 »

2ПМ:  
 
Матрица переходов или матрица соответствия.
Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
jarni
[Гарный хлопец]
Прирожденный Джаец

Мне нечего сказать.


Ё-мэйл

Пол:
Репутация: +306
Re: С++ Вопросы и ответы.
« Ответ #284 от 20.06.2019 в 16:02:15 »

20.06.2019 в 15:09:16, ПМ писал(a):
А вот это уже никак.  
А разве комбо-бокс не поддерживает сортировку? В С# можно либо включить алфавитную сортировку, либо отсортировать массив значений и сделать его дата-сорсом для комбобокса.
Зарегистрирован

Don't worry, be happy.
ПМ
[JA'ец. Настоящий. Одна штука :]


Джаец - НОчник




Пол:
Репутация: +704
Re: С++ Вопросы и ответы.
« Ответ #285 от 20.06.2019 в 16:27:06 »

2jarni:  
Надо будет посмотреть. Хотя емнип это уже излишество, тем более что в названиях кириллица и латиница весьма вольно используются.
 


Вот прицепился!       IMP2s.jpg
« Изменён в : 20.06.2019 в 16:27:22 пользователем: ПМ » Зарегистрирован

Детство без Интернета - это лучшее, что могла подарить нам жизнь.
jarni
[Гарный хлопец]
Прирожденный Джаец

Мне нечего сказать.


Ё-мэйл

Пол:
Репутация: +306
Re: С++ Вопросы и ответы.
« Ответ #286 от 20.06.2019 в 16:28:35 »

2ПМ:
 20.06.2019 в 16:27:06, ПМ писал(a):
Надо будет посмотреть.
Нафиг, так прекрасно смотрится.
Зарегистрирован

Don't worry, be happy.
Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: С++ Вопросы и ответы.
« Ответ #287 от 20.06.2019 в 16:37:26 »

2ПМ:  
 
Ну, ёптыть! Ты что, хром на "рюске език"?
 
- Волосы * BROWNHEAD
- Кожа * TANSKIN
- Майка * CamoWestBrowmGr...
- Штаны * CamoWestBrowmG...
 
Это ненормально!!!
 
--------------------------
 
А вот от этого упаль и уписалсо:
 
"Руки" - "ПМ"!!! Видятся радужные флаги на фоне голубого неба...
 
---------------------------
 
Не говоря уже о том, что "Подвижность" - это, па-рюзьке, "Резвость"!!! Как у коника, сиречь у скаковых лошадей...
« Изменён в : 20.06.2019 в 16:41:30 пользователем: Bonarienz » Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Legend
[Переводчик]
Прирожденный Джаец

надА


Ё-мэйл

Пол:
Репутация: +864
Re: С++ Вопросы и ответы.
« Ответ #288 от 20.06.2019 в 17:21:40 »

2ПМ: "Эволюцию" в "обучение" уже переименуй, а то нифига не понятно, в какую лягушку мерк эволюционировать должен ;D
 
Quote:
"Подвижность" - это, па-рюзьке, "Резвость"
Лучше "резкость". И градации - "к.г.п." (как генерал в погонах), "к.п.ж." (как прапор жилистый), "с.д.ч.в." (сержант дневальному черпаком выдал) и иже с ними =)
Зарегистрирован

- Удельный вес ядра твоей планеты думай!
- Эээ...

Luficer
[Аццкий Сотона]
Прирожденный Джаец

Да, это негр :)


Ё-мэйл

Пол:
Репутация: +318
Re: С++ Вопросы и ответы.
« Ответ #289 от 20.06.2019 в 17:43:17 »

И, кстати, где слюна жука?
 
Хочу слюну жукааааа...
Зарегистрирован

Ночью в тёмных переулках Астаны слышно цоканье копытцев Сотоны.
jarni
[Гарный хлопец]
Прирожденный Джаец

Мне нечего сказать.


Ё-мэйл

Пол:
Репутация: +306
Re: С++ Вопросы и ответы.
« Ответ #290 от 20.06.2019 в 17:50:03 »

2ПМ: А можешь руки, большие слоты и малые слоты сделать груп-боксами, как Индивидуальность или Инвентарь. Статики занимают слишком много места.
Зарегистрирован

Don't worry, be happy.
ПМ
[JA'ец. Настоящий. Одна штука :]


Джаец - НОчник




Пол:
Репутация: +704
Re: С++ Вопросы и ответы.
« Ответ #291 от 21.06.2019 в 15:21:39 »

20.06.2019 в 16:37:26, Bonarienz писал(a):
Это ненормально!

Это более чем нормально. Это реальные символьные значения, которые не стоит интерпретировать.
 
 20.06.2019 в 17:50:03, jarni писал(a):
руки, большие слоты и малые слоты сделать груп-боксами, как Индивидуальность или Инвентарь

 

Вот прицепился!       IMP3.jpg
Зарегистрирован

Детство без Интернета - это лучшее, что могла подарить нам жизнь.
Legend
[Переводчик]
Прирожденный Джаец

надА


Ё-мэйл

Пол:
Репутация: +864
Re: С++ Вопросы и ответы.
« Ответ #292 от 21.06.2019 в 15:54:17 »

2ПМ: А что значит "рукожоп"? Впервые вижу ;D И зачем номер вещи в название вернул, это же повторение?
Зарегистрирован

- Удельный вес ядра твоей планеты думай!
- Эээ...

ПМ
[JA'ец. Настоящий. Одна штука :]


Джаец - НОчник




Пол:
Репутация: +704
Re: С++ Вопросы и ответы.
« Ответ #293 от 21.06.2019 в 19:22:55 »

21.06.2019 в 15:54:17, Legend писал(a):
рукожоп

На мой взгляд наиболее точно отражает суть оригинального "Badass". Это тот уникум, который из автомата шмаляет с одной руки.
 
 21.06.2019 в 15:54:17, Legend писал(a):
номер вещи в название вернул

Не поверишь, но ориентироваться в списке удобнее.  :P
Зарегистрирован

Детство без Интернета - это лучшее, что могла подарить нам жизнь.
Legend
[Переводчик]
Прирожденный Джаец

надА


Ё-мэйл

Пол:
Репутация: +864
Re: С++ Вопросы и ответы.
« Ответ #294 от 21.06.2019 в 20:16:03 »

2ПМ: Хмм. Рукожоп это у которого руки из той самой жопы, который делает всё через жопу. Badass это что-то совсем другое, кто-то непомерно крутой. Ещё мой словарь выдал "отморозок". Ну а т.к. в игре этот перс стреляет из Баррета с одной руки, то это тупо позер ;D
 
Quote:
ориентироваться в списке удобнее
Я думал таким образом искать нужное просто набирая название. Сейчас оно работает с номерами, т.к. они первые. Причём игнорируя первую скобку :D Вот такой же херни хочется с названием.
Зарегистрирован

- Удельный вес ядра твоей планеты думай!
- Эээ...

ПМ
[JA'ец. Настоящий. Одна штука :]


Джаец - НОчник




Пол:
Репутация: +704
Re: С++ Вопросы и ответы.
« Ответ #295 от 21.06.2019 в 20:34:01 »

21.06.2019 в 20:16:03, Legend писал(a):
просто набирая название

Для этого сначала надо все нахвания лопатить, чтобы латиница и кириллица были строго где надо.
Хм...
Или действительно убрать дублирование номера в описании?
« Изменён в : 21.06.2019 в 21:12:34 пользователем: ПМ » Зарегистрирован

Детство без Интернета - это лучшее, что могла подарить нам жизнь.
ПМ
[JA'ец. Настоящий. Одна штука :]


Джаец - НОчник




Пол:
Репутация: +704
Re: С++ Вопросы и ответы.
« Ответ #296 от 21.06.2019 в 21:19:06 »

Там всех дел - несколько строчек закомментировать.
 

Вот прицепился!       IMP3s.jpg
Зарегистрирован

Детство без Интернета - это лучшее, что могла подарить нам жизнь.
Ushwood
[ДжАдай]
Прирожденный Джаец

May the Force be with you


WWW Ё-мэйл

Пол:
Репутация: +562
Re: С++ Вопросы и ответы.
« Ответ #297 от 06.01.2021 в 11:47:06 »

Пытаюсь сейчас построить решение в VS2019 с помощью cmake. Никогда раньше этого не делал и сейчас бы с удовольствием обошелся, но приходится.
(на всякий случай - речь идет о пакете Geant4 под Win10... не думаю, что это сейчас имеет значение.)
 
Так вот. Пишу в командной строке
> cmake --build . --config Release
 
и получаю кукиш следующего содержания:
Quote:
CMake Error:
  Generator
 
    Visual Studio 16 2019
 
  could not find specified instance of Visual Studio:
 
    D:/VS2019

 
Вопрос: какого хрена? Я никогда не устанавливал и не пытался устанавливать VS в эту папку. Она у меня установлена в стандартном месте: C:\Program Files (x86)\Microsoft Visual Studio\2019. Откуда вообще у Цмейка взялась идея искать ее на D, и как объяснить ему, что он неправ?
 
ЗЫ. На всякий случай тупо скопировал папку \2019 на D под этим самым названием, но результат ровно тот же самый.
 
ЗЗЫ. Компонента "Средства CMake C++ для Windows" установлена.
« Изменён в : 06.01.2021 в 11:48:55 пользователем: Ushwood » Зарегистрирован

Мои текущие переводы:
Червь эпилог, версия 23.04.24

Korchy
[Непреодолимая сила]
Прирожденный Джаец

Ах, было б только с кем поговорить ...


WWW Ё-мэйл

Пол:
Репутация: +663
Re: С++ Вопросы и ответы.
« Ответ #298 от 06.01.2021 в 11:55:20 »

Посмотри что в PATH у тебя для cmake есть в наличии.
И каежтся, если я еще чего-то помню, cmake можно при установке visual studio установить интегрированный и собирать проект прям из студии.
Зарегистрирован

ban.gif
Ushwood
[ДжАдай]
Прирожденный Джаец

May the Force be with you


WWW Ё-мэйл

Пол:
Репутация: +562
Re: С++ Вопросы и ответы.
« Ответ #299 от 06.01.2021 в 12:49:20 »

В переменных среды никакого намека на путь d:\vs2019 не обнаружилось.
 
Более того, на cmake.org я нашел вот что:
Quote:

 
VS 2019 supports multiple installations on the same machine. The CMAKE_GENERATOR_INSTANCE variable may be set as a cache entry containing the absolute path to a Visual Studio instance. If the value is not specified explicitly by the user or a toolchain file, CMake queries the Visual Studio Installer to locate VS instances, chooses one, and sets the variable as a cache entry to hold the value persistently.
When CMake first chooses an instance, if the VS160COMNTOOLS environment variable is set and points to the Common7/Tools directory within one of the instances, that instance will be used. Otherwise, if more than one instance is installed we do not define which one is chosen by default.

 
Я обнаружил, что в переменных среды нет переменной VS160COMNTOOLS. Я вписалее туда со значением C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools
Перезагрузил комп и... та же фигня :(.
Зарегистрирован

Мои текущие переводы:
Червь эпилог, версия 23.04.24

Ushwood
[ДжАдай]
Прирожденный Джаец

May the Force be with you


WWW Ё-мэйл

Пол:
Репутация: +562
Re: С++ Вопросы и ответы.
« Ответ #300 от 07.01.2021 в 18:11:43 »

Короче, проблему пришлось решать радикально. Я снес Студию, потом заново поставил по этому самому пути.
Зарегистрирован

Мои текущие переводы:
Червь эпилог, версия 23.04.24

Artem13
[13-й воин]
Прирожденный Джаец

Ап, и черти у ног моих сели...


WWW Ё-мэйл

Пол:
Репутация: +441
Re: С++ Вопросы и ответы.
« Ответ #301 от 03.09.2021 в 09:01:07 »

Так, други, наступает момент, когда меня принуждают ваять клиент под МЭК61850. В связи с этим вопрос/просьба - кто-то ТСР на Сях программил? Если да - пните в нужном направлении (литература/уроки/т.п.). Желательно русскоязычном. Аглицкий мну напрягает :(
« Изменён в : 03.09.2021 в 09:01:24 пользователем: Artem13 » Зарегистрирован

Artem13.gif
http://www.aap13.narod.ru
И пули, что найдет тебя,
Ты не услышишь,
А остальные мимо пролетят

Korchy
[Непреодолимая сила]
Прирожденный Джаец

Ах, было б только с кем поговорить ...


WWW Ё-мэйл

Пол:
Репутация: +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/...
Зарегистрирован

ban.gif
Artem13
[13-й воин]
Прирожденный Джаец

Ап, и черти у ног моих сели...


WWW Ё-мэйл

Пол:
Репутация: +441
Re: С++ Вопросы и ответы.
« Ответ #303 от 03.09.2021 в 09:32:55 »

Эм, для виндузятины оно покатит?
Зарегистрирован

Artem13.gif
http://www.aap13.narod.ru
И пули, что найдет тебя,
Ты не услышишь,
А остальные мимо пролетят

Korchy
[Непреодолимая сила]
Прирожденный Джаец

Ах, было б только с кем поговорить ...


WWW Ё-мэйл

Пол:
Репутация: +663
Re: С++ Вопросы и ответы.
« Ответ #304 от 03.09.2021 в 09:35:10 »

03.09.2021 в 09:32:55, Artem13 писал(a):
для виндузятины оно покатит?

Вряд-ли. Меня "МЭК61850" смутил, подумал что там линь.
Зарегистрирован

ban.gif
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-й воин]
Прирожденный Джаец

Ап, и черти у ног моих сели...


WWW Ё-мэйл

Пол:
Репутация: +441
Re: С++ Вопросы и ответы.
« Ответ #306 от 03.09.2021 в 09:54:32 »

Ок, сенькс. Попробую.
Зарегистрирован

Artem13.gif
http://www.aap13.narod.ru
И пули, что найдет тебя,
Ты не услышишь,
А остальные мимо пролетят

Ushwood
[ДжАдай]
Прирожденный Джаец

May the Force be with you


WWW Ё-мэйл

Пол:
Репутация: +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 » Зарегистрирован

Мои текущие переводы:
Червь эпилог, версия 23.04.24

Korchy
[Непреодолимая сила]
Прирожденный Джаец

Ах, было б только с кем поговорить ...


WWW Ё-мэйл

Пол:
Репутация: +663
Re: С++ Вопросы и ответы.
« Ответ #308 от 30.06.2022 в 15:53:54 »

2Ushwood:  
тупая проверка не поможет?
 
#ifdef _WIN32
// Win
#else
// lin
#endif
Зарегистрирован

ban.gif
Zed
[SIG edition ;)]
A.I.M.Director

Была такая игра Z


Ё-мэйл

Пол:
Репутация: +532
Re: С++ Вопросы и ответы.
« Ответ #309 от 30.06.2022 в 19:10:09 »

30.06.2022 в 15:47:55, Ushwood писал(a):
Эта программа должна быть трансферабельна с винды (visual studio) на линукс и обратно.

https://www.boost.org/doc/libs/1_54_0/libs/filesystem/doc/index.htm
Зарегистрирован

Кровавый ГБист, душитель свободы.
Lion
[Lion. King Lion.]


Welcome to Metavira!




Пол:
Репутация: +362
Re: С++ Вопросы и ответы.
« Ответ #310 от 30.06.2022 в 20:32:48 »

30.06.2022 в 19:10:09, Zed писал(a):
https://www.boost.org/doc/libs/1_54_0/libs/filesystem/doc/index.htm
А ещё лучше сказать, что у нас есть С++17 и не думать про boost
 
А в общем случае Korchy прав, если очень хочется, то системнозависимый код окружают макросами. И тут систем всего-то две.
 
Offtop:
« Изменён в : 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


WWW Ё-мэйл

Пол:
Репутация: +562
Re: С++ Вопросы и ответы.
« Ответ #313 от 01.07.2022 в 11:58:56 »

2Korchy:  
2Zed:  
Спасибо, попробую.
Зарегистрирован

Мои текущие переводы:
Червь эпилог, версия 23.04.24

JAggernaut
[Сын батьки Махно]
Прирожденный Джаец

Он же Махновский




Пол:
Репутация: +135
Re: С++ Вопросы и ответы.
« Ответ #314 от 07.12.2022 в 02:01:22 »


Вот прицепился!       photo_2022-12-07_01-33-58.jpg
Зарегистрирован

Мод JA2 "Солдаты Анархии": http://forum.ja2.su/cgi-bin/yabb/YaBB.pl?board=ja2v113;action=display;num=1461950373;start=0#0
Видеоканал: www.youtube.com/playlist?list=PLfiTd_jX0ZXcL5mOEXr7t3u3Mygzqbzzp

Bonarienz
[Хороший ариец]


Враг Джавдета в анимации ДжА2, Бон-а-рьен-ц!




Репутация: +346
Re: С++ Вопросы и ответы.
« Ответ #315 от 07.12.2022 в 13:35:53 »

2JAggernaut:  
 
Инкапсулированные говнокодеры...
Зарегистрирован

Deleatur (лат.) - Стереть все, совсем все!
Ushwood
[ДжАдай]
Прирожденный Джаец

May the Force be with you


WWW Ё-мэйл

Пол:
Репутация: +562
Re: С++ Вопросы и ответы.
« Ответ #316 от 08.02.2023 в 17:31:09 »

У меня в одной из сишных программ возникла какая-то дурацкая ошибка, с которой я никогда раньше не встречался.
Программа отказывается открывать текстовый файл для записи.
Файловая переменная равна NULL, и программа вылетает.
Что я перепробовал (следы этого частично видны на скрине выше):
- менял имя файла на какое-то совершенно безобидное;
- менял путь (текущая директория, корень разных дисков; место везде есть);
- пытался открывать через fopen или через fopen_s;
- файловую переменную задавал как локальную или глобальную;
- работал в режиме debug и release;
- перезагружал Студию, делал полный ребилд проекта (знаю, иногда сама Студия глючит, тогда эти меры обычно помогают);
- позакрывал большую часть приложений, так что у меня свободно 7 гигов оперативки, а сама программа жрет 200 мегов.
Все это ничего не поменяло :(.
 
Я в тупике. Не понимаю, в чем ЕЩЕ может быть проблема.
 
ЗЫ. Visual Studio 2015.
Вот прицепился!       open_error.jpg
« Изменён в : 08.02.2023 в 17:40:59 пользователем: Ushwood » Зарегистрирован

Мои текущие переводы:
Червь эпилог, версия 23.04.24

Korchy
[Непреодолимая сила]
Прирожденный Джаец

Ах, было б только с кем поговорить ...


WWW Ё-мэйл

Пол:
Репутация: +663
Re: С++ Вопросы и ответы.
« Ответ #317 от 08.02.2023 в 18:49:57 »

путь абсолютным попробовать задать?
Зарегистрирован

ban.gif
pipetz
[пипец всему!]
Прирожденный Джаец

Я очень люблю этот Форум!


Ё-мэйл

Пол:
Репутация: +303
Re: С++ Вопросы и ответы.
« Ответ #318 от 08.02.2023 в 19:08:05 »

08.02.2023 в 18:49:57, Korchy писал(a):
путь абсолютным попробовать задать?

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

- Джаец?
- Джаиц, джаиц.
- Ну, джаец, ну погоди!
https://github.com/egorovav/Ja2Project/releases

Терапевт
[Человек в чёрном]


Народный целитель. Шарлатан высшей категории.




Пол:
Репутация: +1190
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


WWW Ё-мэйл

Пол:
Репутация: +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().
Спасибо, попробую.
Зарегистрирован

Мои текущие переводы:
Червь эпилог, версия 23.04.24

pipetz
[пипец всему!]
Прирожденный Джаец

Я очень люблю этот Форум!


Ё-мэйл

Пол:
Репутация: +303
Re: С++ Вопросы и ответы.
« Ответ #322 от 08.02.2023 в 22:59:08 »

08.02.2023 в 22:43:18, Ushwood писал(a):
Я пытаюсь понять, что могло пойти не так, из-за чего она не отработала у меня.  

Пришли расшифровку ДНК.  ;D
Зарегистрирован

- Джаец?
- Джаиц, джаиц.
- Ну, джаец, ну погоди!
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


WWW Ё-мэйл

Пол:
Репутация: +562
Re: С++ Вопросы и ответы.
« Ответ #324 от 09.02.2023 в 17:34:13 »

08.02.2023 в 20:55:05, Терапевт писал(a):
Попробуй получить информацию об ошибке с помощью функции GetLastError().
https://learn.microsoft.com/ru-ru/windows/win32/debug/retrieving-the-las....
 
То ли лыжи не едут... : rolleyes :
Вставил функцию по этой ссылке в начало программы, вставил строку
if(!GetProcessId(NULL))
   ErrorExit(TEXT("GetProcessId"));
после того самого fopen, запустил ииии... прога вылетела внутри этой самой функции.
 

Вот прицепился!       open_error2.jpg
Зарегистрирован

Мои текущие переводы:
Червь эпилог, версия 23.04.24

Ushwood
[ДжАдай]
Прирожденный Джаец

May the Force be with you


WWW Ё-мэйл

Пол:
Репутация: +562
Re: С++ Вопросы и ответы.
« Ответ #325 от 09.02.2023 в 19:01:55 »

Следующая серия.
В попытке обойти проблему я убрал эту функцию вообще, открыл файл на запись в самом начале программы (и закрыл в самом конце). Прога немного поработала, потом вылетела с сообщением "Куча была повреждена".
Чувствую, теперь я буду дооолго искать, где именно и что я натворил с кучей...
Зарегистрирован

Мои текущие переводы:
Червь эпилог, версия 23.04.24

Терапевт
[Человек в чёрном]


Народный целитель. Шарлатан высшей категории.




Пол:
Репутация: +1190
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...
Зарегистрирован

Весна! Я уже не грею пиво! (с) В.Цой
Терапевт
[Человек в чёрном]


Народный целитель. Шарлатан высшей категории.




Пол:
Репутация: +1190
Re: С++ Вопросы и ответы.
« Ответ #327 от 09.02.2023 в 19:34:30 »

09.02.2023 в 19:01:55, Ushwood писал(a):
Прога немного поработала, потом вылетела с сообщением "Куча была повреждена".

Похоже на результат бесконтрольного рекурсивного (сама себя) вызова какой-то функции.
Зарегистрирован

Весна! Я уже не грею пиво! (с) В.Цой
Ushwood
[ДжАдай]
Прирожденный Джаец

May the Force be with you


WWW Ё-мэйл

Пол:
Репутация: +562
Re: С++ Вопросы и ответы.
« Ответ #328 от 10.02.2023 в 12:42:08 »

Рекурсивных функций у меня нет. А вот динамические массивы есть, и имел место выход за границы одного из них.
Дело раскрыто. Спасибо всем, кто помогал :).
Зарегистрирован

Мои текущие переводы:
Червь эпилог, версия 23.04.24

Терапевт
[Человек в чёрном]


Народный целитель. Шарлатан высшей категории.




Пол:
Репутация: +1190
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 (лат.) - Стереть все, совсем все!
Терапевт
[Человек в чёрном]


Народный целитель. Шарлатан высшей категории.




Пол:
Репутация: +1190
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


WWW Ё-мэйл

Пол:
Репутация: +562
Re: С++ Вопросы и ответы.
« Ответ #333 от 10.02.2023 в 18:18:19 »

10.02.2023 в 13:03:52, Терапевт писал(a):
Подобные штуки реализуются вручную через динамическое выделение памяти с помощью malloc().  
Именно так и делал.
Зарегистрирован

Мои текущие переводы:
Червь эпилог, версия 23.04.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 (лат.) - Стереть все, совсем все!
Страниц: 1     « Открыть сокрытое! » Послать Тему Послать Тему Печатать Печатать

« Предыдущая Тема | Следующая Тема »

Статистика. Размер данных: 287183 GZip: off
A.I.M. » Powered by YaBB Modification 4 (v.4.0.0-pre)!
YaBB © 2000-2003. All Rights Reserved.