Задать вопрос
  • OneToOne (JOIN) vs лишнее поле у сущности?

    @res2001
    Vitaly Melnikov, про шаблоны не скажу, веб разработкой не занимаюсь.
  • Почему буфер приема WinSock заполняется мусором?

    @res2001
    sddvxd, Если речь о выводе на экран, то можно воспользоваться Си функцией printf, там в шаблонах можно указать длину строки для вывода (тогда будет выводится заданное количество символов, не взирая на наличие нулевого символа).
    Не знаю, есть ли подобная возможность в плюсовом cout.
    Так же, если в дальнейшем планируется работать с полученной информацией как со строкой, то необходимо вручную добавить нулевой байт в конец. Тогда вы получите стандартную с-строку.
  • Что случилось Windows?

    @res2001
    krdsev, Пару раз сталкивался, что пользователь не мог зайти в винду, при этом под другим пользователем нормально все работало. Зайдя в каталог профиля проблемного пользователя обнаруживал в одном случае несколько файлов реестра нулевой длины, в другом случае их не было вовсе. Если на компе был только один пользователь, то приходилось загружаться с live носителя или в безопасном режиме.
    Тут было не трудно предположить, что проблема в пользовательском реестре.

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

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

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

    Вообще, начина с Вин7 (про висту нет сведений) регулярно сталкиваюсь с проблемами с пользовательскими профилями (это не всегда проблема в реестре). В ВинХР такого не было.
  • Как открыть файл название которого представлено в unicode?

    @res2001
    IvankoPo, Возможно, что в вашем случае путь к файлу уже задан в Юникоде и ничего преобразовывать не нужно. Посмотрите под отладчиком что конкретно содержится в argv[1]. Каждый символ в Юникодной строке в винде будет представлен двумя байтами, а не одиним.
    В свойствах проекта включите поддержку Unicode, тогда argv должен стать wchar_t.

    Встречные вопросы: В какой кодировке задано имя файла? Эта кодировка установлена в винде?
  • OneToOne (JOIN) vs лишнее поле у сущности?

    @res2001
    Vitaly Melnikov, Решать вам в конечном итоге, я же не знаю вашей ситуации.
    Если для дублирования информации у вас нет веских причин, то нужно этого избегать, т.к. дублирование ведет к проблеме синхронизации информации.

    И еще один момент: хранить полный путь в БД так же не стоит - так вы связываете себя с конкретным местом расположения файлов. Хранить в БД стоит относительный путь, относительно какого-либо базового какталога, который задается в параметрах программы. Абсолютный путь будете получать складывая базовый каталог и относительный путь из БД.
  • Скажите, с чего начать изучение Linux?

    @res2001
    fpir, Большинству пользователей десктопов наплевать на открытость, а вот бесплатность - понятна каждому.
  • Почему вылетает исключение в MSVC?

    @res2001
    evg_96, Вы сначала освободили память: free(current), а потом обращаетесь к уже освобожденной памяти: current->next. После free указатель уже не действительный и его использовать нельзя.
    В gcc ошибка не проявляется, потому что используются разные менеджеры памяти внутри стандартной библиотеки (она хоть и стандартная снаружи, но внутри все реализовывают по разному).
    Вообще, по моему, тут и компилятор мог ругнуться, возможно надо выставить уровень предупреждений по выше.
  • Почему вылетает исключение в MSVC?

    @res2001
    evg_96, Ошибка тут:
    while (current != NULL)
        {
            free(current);
            current = current->next;
        }

    Думаю догадаетесь сами где конкретно.
  • Почему вылетает исключение в MSVC?

    @res2001
    evg_96, Почему?
    Обычно я делаю так: собираю приложение с отладочной информацией, запускаю под отладчиком в IDE, стартую без точек останова. Там где произойдет ошибка программа остановится и вернется в отладчик, в отладчике нужно по стеку вызовов перейти на свою последнюю функцию и уже в нужной точке анализируешь, что ж ты там написал.

    Иногда бывает, что программа с отладочной информацией работает, а в "релизной" сборке не работает - значит где-то выход за пределы массива/обращение к не выделенной памяти (не инициализированному указателю)...

    На каком этапе работы программа вываливается (это можно определить по сообщениям, которые выводятся программой)? Какие входные данные подаете при этом? На чем именно из входных данных программа вываливается?
  • Почему вылетает исключение в MSVC?

    @res2001
    Запустите под отладчиком, там ошибка находится в течении 5 минут.
  • Как заставить нужный файл оказаться в нужном месте?

    @res2001
    Вроде бы вы все правильно делаете, не раз переносил БД таким способом.
    Файлы БД лежат на локальном диске сервера БД?
    Вы работаете в SSMS на сервере или на удаленном раб.месте?
    Какой конкретно путь указываете при присоединении в SSMS?
  • Как сделать правильно?

    @res2001
    ТопМетаФизик, Почему бы вам сразу результирующий массив не возвращать в ява, минуя файлы. Это наверняка можно сделать через JNI.
  • Как сделать правильно?

    @res2001
    ТопМетаФизик, Если что, VLA - это:
    int v[b];
    т.е. массив переменной длинный, невзирая на то что b у вас const int, но инициализируется она от простого int, компилятор это видит, поэтому это VLA, а не статический массив.
    Да, у микрософта на многие вещи свой взгляд, впрочем так же как и у остальных. И компилятор микрософт не поддерживает полностью C99, где появились VLA.
  • Как сделать правильно?

    @res2001
    ТопМетаФизик, Вы в VisualStudio это делаете?
    Она не поддерживает VLA до сих пор: https://msdn.microsoft.com/ru-ru/library/zb1574zs.aspx
    Выделяйте память под массив с помощью malloc/new и не забывайте освобождать после использования.
  • Как сделать правильно?

    @res2001
    ТопМетаФизик, У вас тут все правильно и работает.
  • В чем ошибка кода?

    @res2001
    сам нашел: https://docs.oracle.com/javase/7/docs/technotes/gu...
    jsize - обычный int.
    Так что у вас все корректно. Если нужна константа - объявите SIZE так
    const jsize SIZE = ...
  • В чем ошибка кода?

    @res2001
    ТопМетаФизик, jsize как определено?
    Вопросы можно редактировать - поставьте вызов kolvodel в нужное место.
  • Как коректно переобразовать тип wchar_t в string?

    @res2001
    Евгений Шатунов,
    А помимо стандартной библиотеки, все нужное есть еще и в WinAPI.

    Все же это не совсем WinAPI - это stdlib от микрософта. WinAPI будет тут.
    В остальном все верно, плюсую.
  • В чем ошибка кода?

    @res2001
    Что именно не работает?
    Ошибка компиляции, не верные результаты?
    Напишите тест - простую консольную программу на С++, чтоб не приплетать яву и отлаживайте на ней свою функцию, пока не получите правильный результат. Потом работающую функцию используйте в связке с явой. Функцию лучше сразу выделить в отдельный файл cpp, чтоб проще было использовать ее в разных сборках.