Форум программистов, компьютерный форум CyberForum.ru

Не понятная ошибка - C++

Восстановить пароль Регистрация
 
Zhalonkin
0 / 0 / 0
Регистрация: 28.05.2013
Сообщений: 3
28.05.2013, 10:17     Не понятная ошибка #1
Доброго времени суток...))) С++ изучаю второй день, прошу строго не ругать если моя проблема является элементарной, но тем не менее всю ночь просидел в Google и не нашел проблемы. Проблема в коде:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <stdio.h>
 
 
int main(int argc, char *argv[])
{
    char str[1024];
    sprintf(str, "\"C:\\Program Files\\Java\\jre7\\bin\\javaw.exe\" -Xms%um -Xmx%um -%s", argv[1], argv[2], argv[3]);
    system(str);
    return 0;
}
Запуск произвожу ярлыком:

console_run.exe -1024 -2048 -"C:\Program Files\My_JAR"

При запуске выдает следующее:

Сигнатура проблемы:
Имя события проблемы: APPCRASH
Имя приложения: console_run.exe
Версия приложения: 0.0.0.0
Отметка времени приложения: 51a44498
Имя модуля с ошибкой: MSVCR100D.dll
Версия модуля с ошибкой: 10.0.30319.1
Отметка времени модуля с ошибкой: 4ba1dbd4
Код исключения: c0000005
Смещение исключения: 000e14cf
Версия ОС: 6.1.7601.2.1.0.256.1
Код языка: 1049
Дополнительные сведения 1: 0a9e
Дополнительные сведения 2: 0a9e372d3b4ad19135b953a78882e789
Дополнительные сведения 3: 0a9e
Дополнительные сведения 4: 0a9e372d3b4ad19135b953a78882e789


И ОС предлагает закрыть программу или искать проблему в интернете.

Пишу лаунчер для приложения jar, которое берет путь запуска из каталога из которого был запуск Java.

Если нужна еще какая то информация предоставлю без проблем...)))
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vourhey
Почетный модератор
6468 / 2243 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
28.05.2013, 10:21     Не понятная ошибка #2
argv - указатели на строки. В твоей форматной строке вижу только одну подстановку строки %s Где остальные?
Zhalonkin
0 / 0 / 0
Регистрация: 28.05.2013
Сообщений: 3
28.05.2013, 10:37  [ТС]     Не понятная ошибка #3
Цитата Сообщение от Vourhey Посмотреть сообщение
argv - указатели на строки. В твоей форматной строке вижу только одну подстановку строки %s Где остальные?
%u в параметрах argv[1] и argv[2] передаются целые числа, или это без разницы?

С %s вместо %u все равно идентичная ошибка.
Vourhey
Почетный модератор
6468 / 2243 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
28.05.2013, 10:52     Не понятная ошибка #4
Цитата Сообщение от Zhalonkin Посмотреть сообщение
%u
Это не строка.
Цитата Сообщение от Zhalonkin Посмотреть сообщение
С %s вместо %u все равно идентичная ошибка
Это не важно. %s - правильное использование.

Добавлено через 1 минуту
А ты уверен, что аргументы передаешь программе? Выведи строки из argv, которые подставлять пытаешься. Выведи строку после форматирования, если дальше выполнение идет.

Добавлено через 5 минут
C++
1
2
char s[1024];
sprintf(s, "\"C:\\Program Files\\Java\\jre7\\bin\\javaw.exe\" -Xms%sm -Xmx%sm -\"%s\"", (argv[1]+1), (argv[2]+1), (argv[3]+1));
Вот такой код у меня вроде без ошибок генерит строку.
Zhalonkin
0 / 0 / 0
Регистрация: 28.05.2013
Сообщений: 3
28.05.2013, 11:08  [ТС]     Не понятная ошибка #5
Цитата Сообщение от Vourhey Посмотреть сообщение
C++
1
2
char s[1024];
sprintf(s, "\"C:\\Program Files\\Java\\jre7\\bin\\javaw.exe\" -Xms%sm -Xmx%sm -\"%s\"", (argv[1]+1), (argv[2]+1), (argv[3]+1));
Вот такой код у меня вроде без ошибок генерит строку.
Запрос не верно в ярлыке делал, не нужно было передавать параметры с "-" в начале, в итоге получалось -Xms-1024m -Xmx-2048m --"C:/Program Files/My_JAR"

Работает...))) Благодарю за помощь!!! А есть возможность при передаче в консоль параметров функцией system(), скрыть окно самой консоли? Что то толковое или для своего начального этапа я ничего не нашел.
Vourhey
Почетный модератор
6468 / 2243 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
28.05.2013, 12:33     Не понятная ошибка #6
Цитата Сообщение от Zhalonkin Посмотреть сообщение
А есть возможность при передаче в консоль параметров функцией system(), скрыть окно самой консоли?
С system не уверен, не могу подсказать точно. Можно сделать через CreateProcess, WinExec, ShellExecute, не помню, что в винде уже deprecated, а что нет.

Добавлено через 32 секунды
Цитата Сообщение от Zhalonkin Посмотреть сообщение
в итоге получалось -Xms-1024m -Xmx-2048m --"C:/Program Files/My_JAR"
Ну да, это понятно. Но крашить программу это не должно было.
Yandex
Объявления
28.05.2013, 12:33     Не понятная ошибка
Ответ Создать тему
Опции темы

Текущее время: 06:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru