Страница: 1 |
Страница: 1 |
Вопрос: CreateProcess
Добавлено: 24.12.06 00:36
Ответы
Всего ответов: 10
Номер ответа: 1
Автор ответа:
JMP
Вопросов: 6
Ответов: 171
Профиль | | #1
Добавлено: 24.12.06 08:21
1.Все строковые параметры этой функции должны передаваться как указатель(ByRef) на строку заканчивающуюся нулем.
2.Перед вызовом этой функции надо обязательно инициализировать члена структуры STARTUPINFO
si.cb=размер структуры
si.cb = LEN(si)
CreateProcess(....
Номер ответа: 2
Автор ответа:
Администратор
ICQ: 278109632
Вопросов: 42
Ответов: 3949
Web-сайт:
Профиль | | #2
Добавлено: 24.12.06 20:38
блин) забыл совсем) как я умудрился размер структуры забыть.... блин) бывает же. из головы вылетело. Спасибо)
тема закрыта.
Номер ответа: 3
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #3
Добавлено: 24.12.06 20:48
2прог, боже упаси тебя в 6-ке передавать строки по ссылке, они же юникодовые
Номер ответа: 4
Автор ответа:
JMP
Вопросов: 6
Ответов: 171
Профиль | | #4
Добавлено: 25.12.06 18:38
Alias "CreateProcessA" <- ИМХО не юникодовые
для юникода Alias "CreateProcessW"
Номер ответа: 5
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #5
Добавлено: 26.12.06 17:38
JMP, но фишка в том что не факт что та строка что ты отошлешь будет в юникоде Короче все оч. запутанно и 100% не дает, поэтому всегда лучше подстраховаться и заиспользовать ByVal str as String в этом случае ВБ создаст копию строки именно в ASCII формате.
Номер ответа: 6
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #6
Добавлено: 26.12.06 17:38
JMP, но фишка в том что не факт что та строка что ты отошлешь будет в юникоде Короче все оч. запутанно и 100% не дает, поэтому всегда лучше подстраховаться и заиспользовать ByVal str as String в этом случае ВБ создаст копию строки именно в ASCII формате.
Номер ответа: 7
Автор ответа:
Администратор
ICQ: 278109632
Вопросов: 42
Ответов: 3949
Web-сайт:
Профиль | | #7
Добавлено: 26.12.06 18:35
Только если посмотреть в отладчике, все равно каждая строка копируется и обрабатывается функцией MSVBVM60.__vbaStrToAnsi
Но строки надо передавать по значению, а никак не по ссылке, если CreateProcessA юзать.
Номер ответа: 8
Автор ответа:
JMP
Вопросов: 6
Ответов: 171
Профиль | | #8
Добавлено: 26.12.06 20:49
JMP, но фишка в том что не факт что та строка что ты отошлешь будет в юникоде Короче все оч. запутанно и 100% не дает, поэтому всегда лучше подстраховаться и заиспользовать ByVal str as String в этом случае ВБ создаст копию строки именно в ASCII формате.
Мужики, спорить не буду ибо последний раз ВБ запускал лет 10 назад, а во всех других языках согласно МСДН строковые параметры АПИ CreateProcessпередаются по указателю, так что сорри если кого из ВБ-шников с толку сбил.
Номер ответа: 9
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #9
Добавлено: 27.12.06 10:57
JMP, у VB многое с ног на голову сделано Не удивляйся
Номер ответа: 10
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #10
Добавлено: 27.12.06 11:31
JMP, в ВБ строковые параметры АПИ CreateProcess оже передаются по указателю. Просто в одном случае это указатель на Unicode, во втором - на копию в формате ANSI. Просто синтаксис немного странный.