powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / LPSTR
19 сообщений из 19, страница 1 из 1
LPSTR
    #34622920
x-a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
x-a
Гость
WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
вызываю это приложение с параметрами
12 30

Затем пытаюсь эти параметры присвоить переменным.
s= char*;
s = (char *) calloc( 255, sizeof( char ) );
s=(char *) lpCmdLine;

HWND hWnd1;
HWND hWnd2;
int i=0;
int y=0;
sscanf(s,"%x %x",&i,&y);
hWnd1=(HWND) i;
hWnd2=(HWND) y;

Почему-то присваивается только первое значение, т.е. x=12, а y - так и остается 0. Почему это может происходить? А если пытаюсь таким образом распарсить просто строку char*, то все нормально. Не работает только с LPSTR.
...
Рейтинг: 0 / 0
LPSTR
    #34623085
x-a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
x-a
Гость
Может, кто-нибудь тогда может подсказать, как вообще вытянуть из этой lpCmdLine 2 числа? в переменные x и y?
...
Рейтинг: 0 / 0
LPSTR
    #34623097
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чистый С?
...
Рейтинг: 0 / 0
LPSTR
    #34623156
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уверены что в s храниться правельная строка?
...
Рейтинг: 0 / 0
LPSTR
    #34623163
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поможет функция strtok. как-то так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
    char input[ 256 ];
    char *p;
    int x,y;

    strcpy(input,lpCmdLine);

    /* strtok places a NULL terminator
    in front of the token, if found */
    p = strtok(input, " ");
    if (p) x = atoi(p);  //printf("%s\n", p);

    /* A second call to strtok using a NULL
    as the first parameter returns a pointer
    to the character following the token  */
    p = strtok(NULL, " ");
    if (p) y = atoi(p);  //printf("%s\n", p);
...
Рейтинг: 0 / 0
LPSTR
    #34623331
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x-a wrote:

> Почему-то присваивается только первое значение, т.е. x=12, а y - так и
> остается 0. Почему это может происходить? А если пытаюсь таким образом
> распарсить просто строку char*, то все нормально. Не работает только с
> LPSTR.
Я советую посмотреть доки по WinMain. Вполне возможно, что арументы чем-то
разделены (просто не помню). Далее. В WinAPI должна быть функция что-то
вроде ParseCommandLine или CommandLineToArgv. Как называется, не помню, но
вроде было. (Винды сейчас на компе нет, документация далеко, проверить не
могу - ищите сами).
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
LPSTR
    #34623332
x-a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
x-a
Гость
C++ возможно, но лучше С. В хранится точно правильная строка.. Может, какая особенность LPSTR?
...
Рейтинг: 0 / 0
LPSTR
    #34623361
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 сообщения вверх - код рабочий
...
Рейтинг: 0 / 0
LPSTR
    #34623394
x-a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
x-a
Гость
Попробовала код. Все равно второй аргумент =0!
...
Рейтинг: 0 / 0
LPSTR
    #34623405
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x-aВ хранится точно правильная строка.. Может, какая особенность LPSTR?

1) И разделитель между 12 и 30 пробел?
2) Если в s уже правельная строка, то, в данном случае, на особенности LPSTR уже пох, т.к. данные получили корректные.
...
Рейтинг: 0 / 0
LPSTR
    #34623412
x-a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
x-a
Гость
Извините. Точнее нет, x принимает вообще странное значение - явно не то, которое посылается в ком. строку. А y =o
...
Рейтинг: 0 / 0
LPSTR
    #34623416
x-a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
x-a
Гость
Да, пробел. 32 код. Уже проверено.
...
Рейтинг: 0 / 0
LPSTR
    #34623448
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LPSTR - это просто char * переопределённый.
а на входе в WinMain в lpCmdLine что хранится?
...
Рейтинг: 0 / 0
LPSTR
    #34623456
x-a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
x-a
Гость
100 200
т.е. моя строка в нормальном виде. Параметры доходят нормально
...
Рейтинг: 0 / 0
LPSTR
    #34623459
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x-aДа, пробел. 32 код. Уже проверено.

Строка чем заканчивается, т.е.:

12 30 =0x31 0x32 0x20 0x33 0x30 ... - что дальше?
...
Рейтинг: 0 / 0
LPSTR
    #34623488
x-a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
x-a
Гость
О! Все нормально! Спасибо! Работает! Только вот одна проблема существует. как мне 16-е числа передать... Они же считываются в int x,y.
hWnd1=(HWND) x;
hWnd2=(HWND) y;
Правильного результата не дает. А мне надо в программу передать хендлы двух процессов.
...
Рейтинг: 0 / 0
LPSTR
    #34623504
x-a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
x-a
Гость
Akh x-aДа, пробел. 32 код. Уже проверено.

Строка чем заканчивается, т.е.:

12 30 =0x31 0x32 0x20 0x33 0x30 ... - что дальше?

Могу сказать только коды символов в строке:
1 51 52 102 32 103 54 107
...
Рейтинг: 0 / 0
LPSTR
    #34623766
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x-a wrote:

> О! Все нормально! Спасибо! Работает! Только вот одна проблема существует.
> как мне 16-е числа передать... Они же считываются в int x,y.
1) Напечатать их как unsigned long (оно таковым и является)
2) Напечатать их как %.8x
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
LPSTR
    #34623778
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что это за символ такой с кодом 1 ?
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / LPSTR
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]