![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| magesi |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 20.5.2012 Репутация: -4 Всего: -4 |
Привет всем!
Создаю процесс с интерпретатором Lua
Трабла след. "нужно дать lua скрипт на обработку и взять результат программы на lua" Пытался в 1-ом аргументе дописывать
И пытался во второй пихать
Ни один из вар-тов не воркает... Пока я буду гуглить, если кто-то поможет помочь с этой проблемой, буду крайне благодарен. Заранее Вам спасибо |
||||||
|
|||||||
| EvilsInterrupt |
|
|||
|
Executables research ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1019 Регистрация: 14.7.2007 Где: Железнодорожный, МО, Россия Репутация: 2 Всего: 9 |
magesi,
1) Кто тебя научил что CreateProcess возвращает именно BOOL ? 2) Если ты находишься в студии,то в watch-окошке во время отладки напиши "@err,hr" и после этой CreateProcess смотри чего пишет |
|||
|
||||
| magesi |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 20.5.2012 Репутация: -4 Всего: -4 |
1). Спецификация ф-ции, читай msdn, или даже в инслайте посмотри в VS ![]() 2). ![]() Это сообщение отредактировал(а) magesi - 23.6.2012, 12:42 |
|||
|
||||
| EvilsInterrupt |
|
|||
|
Executables research ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1019 Регистрация: 14.7.2007 Где: Железнодорожный, МО, Россия Репутация: 2 Всего: 9 |
п.1 снимаю, настолько привык к понятию HANDLE что оно мне везде мерещится )))
Тогда посмотри на параметр 1 и параметр 2:
как видишь в одном указывается путь к файлу к примеру "c:\python32\python.exe" , а во втором ее ком-строка к примеру "--input-name d:\samples\test00.exe", это все равно что если я в cmd.exe напишу: "c:\python32\python.exe --input-name d:\samples\test00.exe" |
|||
|
||||
| magesi |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 20.5.2012 Репутация: -4 Всего: -4 |
Потому что, CreateThread HANDLE возвращает, поэтому и мерещеться, т.к. чаще с потоками возишься что-то не понял насчет "--input-name" откуда дописывается, перечитаю еще раз msdn ЗЫ http://support.microsoft.com/kb/175986 пишут, что ( но все, является "трипэде" , т.к. не воракет, то ли пьянный я, пошел дальше разбираться ): If the ApplicationName parameter is passed and the CommandLine parameter is NULL, then the ApplicationName parameter is also used as the CommandLine. This does not mean that you can pass additional command-line parameters in ApplicationName string. For example, the following call will fail with a "File Not Found" error: CreateProcess( "c:\\MyApp.exe Param1 Param2", NULL, ... ) The flexibility of the CreateProcess() function (and a possible point of confusion) arises when you pass a valid string pointer to both the ApplicationName and CommandLine parameters. This allows you to specify the application to be executed as well as the complete command line that is passed to the application. One might assume that the command line passed to the created application is a composite of the ApplicationName and CommandLine parameters, but this is not the case. As a result, a process created by CreateProcess can receive a value other than its .exe name as its "argv[0]" parameter. The following is an example of a call to CreateProcess that produces this "abnormal" behavior: CreateProcess( "c:\\MyApp.exe", "Param1 Param2 Param3", ...) Windows NT Behavior: If the first "parameter" in the CommandLine is not exactly the same as the ApplicationName string, then it replaces it before executing the application. For example if the ApplicationName and CommandLine parameters are as follows: CreateProcess( "c:\\MyApp16.exe", "Param1 Param2 Param3", ...) Это сообщение отредактировал(а) magesi - 23.6.2012, 13:53 |
|||
|
||||
| EvilsInterrupt |
|
|||
|
Executables research ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1019 Регистрация: 14.7.2007 Где: Железнодорожный, МО, Россия Репутация: 2 Всего: 9 |
Я же пример ком. строки привел. Прям напрямую из своих сорцов |
|||
|
||||
| magesi |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 20.5.2012 Репутация: -4 Всего: -4 |
А это личный пример? Меня что-то глюкнула мысль, что Вы имели в виду, что второй аргумент в CreateProcess() добавляет --input-name сам ))) пардон но по этому по поводу, я уже отписался, что у меня не воракет еще в п. 1 стартового сообщения
LUA не надо всяких инпут-неймов писать параметры явные, сразу имя файла |
||||||
|
|||||||
| EvilsInterrupt |
|
||||
|
Executables research ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1019 Регистрация: 14.7.2007 Где: Железнодорожный, МО, Россия Репутация: 2 Всего: 9 |
|
||||
|
|||||
| Randajad |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 295 Регистрация: 15.3.2012 Репутация: 8 Всего: 8 |
Попробуйте:
|
|||
|
||||
| magesi |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 20.5.2012 Репутация: -4 Всего: -4 |
пробывал это, увы... ( я кстати, это выше уже описывал он создает процесс с интерпретатором Lua, но не отдаем ему инструации на выполнение, да процесс создан но в output от Lua ничего.... ( ни ошибки, ни резалта ), просто выдается окно , которое вызывается, если просто Lua запустить ![]() Причем, если просто в сmd: lua52 C:\some.lua , то выдает резалт именно... :( Кстати, на Шарпе у меня с этим проблем нет, но нужно именно на Сях сделать :( Добавлено @ 15:14
нет.... к сожалению даже в BOOL выдает 0 после такого... :( Это сообщение отредактировал(а) magesi - 23.6.2012, 15:18 |
||||||
|
|||||||
| Randajad |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 295 Регистрация: 15.3.2012 Репутация: 8 Всего: 8 |
Черт! Я перепутал аргументы же.
Вот так будет работать. |
|||
|
||||
| magesi |
|
||||||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 20.5.2012 Репутация: -4 Всего: -4 |
У меня на Ваш код вышло след. ![]() Добавлено через 7 минут и 38 секунд Приведу-ка я полностью весь код и объясню, что делаю:
Программа на lua ( внимание тэги <%lua% && %end%> к lua не относятся, это чисто свое уже! )
Финальная цель, как Вы уже догадались, сделать веб-сервер , работающим с Lua, сейчас разбираюсь с парсингом html-страниц на сервере с lua кодом т.е. будут такие inject'ы ( что-то на подобии )
Цель, отрезать из таких страниц, часть lua кода, отдавать на обработку lua интерпретатору, а потом полученный результат в буффр сунуть и отправить клиенту, вот такая цель |
||||||||||
|
|||||||||||
| Randajad |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 295 Регистрация: 15.3.2012 Репутация: 8 Всего: 8 |
Бида. А если попробовать не уникодную версию? CreateProcessA.
У меня работает. |
|||
|
||||
| Randajad |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 295 Регистрация: 15.3.2012 Репутация: 8 Всего: 8 |
Кстати, pi обнулять тоже нужно, если не ошибаюсь.
|
|||
|
||||
| Qu1nt |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 602 Регистрация: 13.1.2007 Репутация: 1 Всего: 50 |
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |