Показать сообщение отдельно
Старый 12.11.2010, 18:26   #30  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,715 / 1204 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от SHiSHok Посмотреть сообщение
Причесал, пофиксил и протестировал ax3sp3
(* добавил _currentDirectory, исправил определения ф-ций)
Судя по тому, что никто не сообщил об ошибках, то этой функцией не пользуются А мне вот понадобилась и сразу напоролся на парочку ошибок

1. Некорректно задано значение для strartupInformation. В указанном синтаксисе значение параметра _cmdShow будет просто проигнорировано. Необходимо так

X++:
    strartupInformation.dWord(0, 68);     // Общая длина. Впрочем, можно и не указывать
    strartupInformation.dWord(44, 1);    // Учитывать значение параметра _cmdShow
    strartupInformation.dWord(48, _cmdShow);

2. Не понял как быть, если currentDirectory не указано. Пустую строку createProcess принять не может. Предполагается, что если директория не указана, то надо передать NULL, но как это "разрулить" в данном случае - не понятно...

3. Если длина команды _commandLine очень велика, то в случае превышения отведенного на обработку времени при попытке отобразить этот текст в infolog Axapta просто вылетает. Поэтому для сообщения об ошибке следует обрезать текст команды до нескольких первых символов. Например, не более 100.
За это сообщение автора поблагодарили: SHiSHok (1).