Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
CreateProcess Передача - прием параметра через командную строку
|
|||
|---|---|---|---|
|
#18+
Здравствуйте уважаемые Гуру! В функции CreateProcess хочу в параметре командной строки передать строковое значение std::string и принять его в приложении Win32 Но тип параметра cmd в CreateProcess - LPTSTR а в функции WinMain запускаемого процесса - LPSTR Делаю так: Код: plaintext 1. 2. 3. 4. В запускаемом процессе: Код: plaintext 1. 2. 3. 4. 5. 6. Процесс запускается все отрабатывает, но параметр не принимает В MessageBox пустое окно но если передать не "update.exe" а с кирилицей, например "Привет update.exe" и обязательно с пробелом Код: plaintext 1. 2. 3. То в окне - получаю "update.exe" Что во что преобразовывать? Подскажите пожалуйста. Всем заранее благодарен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2017, 23:07 |
|
||
|
CreateProcess Передача - прием параметра через командную строку
|
|||
|---|---|---|---|
|
#18+
Arbit, Понимаем разницу между юникодными строками, анси и BSTR_T Еще параметрами Юникода при компиляции Исправляем ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2017, 23:11 |
|
||
|
CreateProcess Передача - прием параметра через командную строку
|
|||
|---|---|---|---|
|
#18+
Arbitа в функции WinMain запускаемого процесса - LPSTR wWinMain - примените для начала Код: plaintext 1. второй момент - во втором параметре полезно продублировать вначале путь к exe авторThe new process can use GetCommandLine to retrieve the entire command line. Console processes written in C can use the argc and argv arguments to parse the command line. Because argv[0] is the module name, C programmers generally repeat the module name as the first token in the command line. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2017, 23:22 |
|
||
|
CreateProcess Передача - прием параметра через командную строку
|
|||
|---|---|---|---|
|
#18+
ArbitЗдравствуйте уважаемые Гуру! В функции CreateProcess хочу в параметре командной строки передать строковое значение std::string и принять его в приложении Win32 Но тип параметра cmd в CreateProcess - LPTSTR а в функции WinMain запускаемого процесса - LPSTR Делаю так: [src C++] string PathSave = (string)Conf.FullPathDirProgrem() + "/update/" + FileName; string cmd = "update.exe"; _bstr_t cmdLine = _bstr_t(cmd.c_str()); _bstr_t -- лишний. Не нужен от слова "СОВСЕМ". LPTSTR -- это не тип, а синоним типа. Указатель на TCHAR . А TCHAR -- это либо char, либо wchar_t, в зависимости от конфигурации программы (макросы UNUCODE, MBCS, или ничего). Тебе сначала нужно решить, какую конфигурацию использовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2017, 12:00 |
|
||
|
CreateProcess Передача - прием параметра через командную строку
|
|||
|---|---|---|---|
|
#18+
Изопропил, рад встрече! Попробовал bpvtybnm в WinMain параметр LPWSTR Код: plaintext 1. но компилятор пишет: "error C2731: WinMain: функция не может быть перегружена" В настройках компилятора у меня стоит "Использовать набор символов Юникода" Мне непонятно почему для передачи используется LPTSTR а принимается LPSTR? Какова логика? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2017, 13:24 |
|
||
|
CreateProcess Передача - прием параметра через командную строку
|
|||
|---|---|---|---|
|
#18+
MasterZiv, спасибо за желание помочь! авторLPTSTR -- это не тип, а синоним типа. Указатель на TCHAR. А TCHAR -- это либо char, либо wchar_t, в зависимости от конфигурации программы (макросы UNUCODE, MBCS, или ничего). То есть если у меня в настройках юникод, То в CreateProcess идет строка wchar_t. Тогда как она может быть принята как LPSTR? Растолкуйте пожалуйста для "особо одаренного" и не пинайте сильно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2017, 14:20 |
|
||
|
CreateProcess Передача - прием параметра через командную строку
|
|||
|---|---|---|---|
|
#18+
Изопропил, как всегда в десятку! Все разрешилось дублированием пути во втором параметре CreateProcess, не меняя ничего в WinMain Спасибо огромное!!! и успешного дня! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2017, 14:35 |
|
||
|
CreateProcess Передача - прием параметра через командную строку
|
|||
|---|---|---|---|
|
#18+
ArbitMasterZiv, спасибо за желание помочь! авторLPTSTR -- это не тип, а синоним типа. Указатель на TCHAR. А TCHAR -- это либо char, либо wchar_t, в зависимости от конфигурации программы (макросы UNUCODE, MBCS, или ничего). То есть если у меня в настройках юникод, То в CreateProcess идет строка wchar_t. Тогда как она может быть принята как LPSTR? Растолкуйте пожалуйста для "особо одаренного" и не пинайте сильно Тогда у тебя CreateProcess превращается в CreateProcessW и LPTSTR ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2017, 17:36 |
|
||
|
CreateProcess Передача - прием параметра через командную строку
|
|||
|---|---|---|---|
|
#18+
Siemargl, спасибо большое, все понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2017, 23:14 |
|
||
|
CreateProcess Передача - прием параметра через командную строку
|
|||
|---|---|---|---|
|
#18+
Изопропил, не сочти за труд пожалуйста. Последний вопрос на эту тему. Это я сделал автоматический апдейт к программе на С# со своего сервера на хостинге Остался последний момент при перезагрузке приложения: - В WinMain (update.exe )я передавал параметр для того чтобы выгрузить основное приложение перед обновленияем необходимых файлов, в том числе и основного exe - Теперь передаю параметр - flag из WinMain в CreateProcess программы С# чтобы при загрузке удалила файл обновления. Вопрос: как принять в С# этот флаг? В модуле Program в функции Main() нет параметров? Где его можно прочитать? Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2017, 23:30 |
|
||
|
CreateProcess Передача - прием параметра через командную строку
|
|||
|---|---|---|---|
|
#18+
Arbit, Код: c# 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2017, 23:53 |
|
||
|
|

start [/forum/topic.php?fid=57&gotonew=1&tid=2018163]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
172ms |
get topic data: |
10ms |
get first new msg: |
7ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 282ms |
| total: | 545ms |

| 0 / 0 |
