реклама на сайте
подробности

 
 
> Как сформировать коммандную строку из программы, Borland C++ Builder (правильно указать путь)
smk
сообщение Jan 31 2011, 17:14
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Есть во такой обработчик нажатия кнопки:
Код
void __fastcall TForm1::Button6Click(TObject *Sender)
{
    char * command="BIN2HEX H:\fv.bin H:\fv.hex";
    STARTUPINFO si;
    PROCESS_INFORMATION pi;
    ZeroMemory( &si, sizeof(si) );
    si.cb = sizeof(si);
    ZeroMemory( &pi, sizeof(pi) );
    // Start the child process.
    if( !CreateProcess( NULL,   // No module name (use command line)
        command,        // Command line
        NULL,           // Process handle not inheritable
        NULL,           // Thread handle not inheritable
        FALSE,          // Set handle inheritance to FALSE
        0,              // No creation flags
        NULL,           // Use parent's environment block
        NULL,           // Use parent's starting directory
        &si,            // Pointer to STARTUPINFO structure
        &pi )           // Pointer to PROCESS_INFORMATION structure
      )
    {
        AnsiString ErrStr=AnsiString( "CreateProcess failed. Error code=" ) + AnsiString(GetLastError());
        ShowMessage(ErrStr);
        return;
    }
    // Wait until child process exits.
    WaitForSingleObject( pi.hProcess, INFINITE );
    // Close process and thread handles.
    CloseHandle( pi.hProcess );
    CloseHandle( pi.hThread );
}
Он запускает коммандную строку char * command="BIN2HEX H:\fv.bin H:\fv.hex"; Мне нужно чтобы вместо H: автоматически подставлялся путь к месту запуска программы, в которой присутствует вышеупомянутый обработчик. Я пробовал скроить строчку: char * command="BIN2HEX "+ExtractFileDir(Application->ExeName)+"\fv.bin"+" "+ExtractFileDir(Application->ExeName)+"\fv.hex"; но ничего не вышло. Пишет ошибку: [C++ Error] Unit1.cpp(306): E2034 Cannot convert 'AnsiString' to 'char *' Как правильно это сделать? Спасибо.


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
skyled
сообщение Feb 1 2011, 14:13
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 217
Регистрация: 11-06-10
Пользователь №: 57 868



Вот такую ошибку
Прикрепленное изображение

получаю в этом месте
Прикрепленное изображение

Хотелось бы знать природу. Вышеупомянутый код раньше работал.После того как программа усложнилась появилась эта проблема. Откуда у нее что растет? Спасибо.
Go to the top of the page
 
+Quote Post
_Bill
сообщение Feb 1 2011, 14:57
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219



Цитата(skyled @ Feb 1 2011, 18:13) *
Вот такую ошибку
Прикрепленное изображение

получаю в этом месте
Прикрепленное изображение

Хотелось бы знать природу. Вышеупомянутый код раньше работал.После того как программа усложнилась появилась эта проблема. Откуда у нее что растет? Спасибо.

Нужно проверять результат функции fopen()!!! Если файл по некоторым причинам не смог открыться, fopen возвращает нулевой результат вместо указателя на структуру FILE.
Go to the top of the page
 
+Quote Post
smk
сообщение Feb 1 2011, 16:57
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Цитата(_Bill @ Feb 1 2011, 16:57) *
Нужно проверять результат функции fopen()!!! Если файл по некоторым причинам не смог открыться, fopen возвращает нулевой результат вместо указателя на структуру FILE.

Вы натолкнули меня на мысль. Дело в том, что эта ошибка проявляется всякий раз, когда я открываю или сохраняю файл с данными посредством OpenDialog или SaveDialog. Поскольку хранятся файлы с данными в одной папке, а открываемый файл в другой, то возможно это причина. Такое может быть?


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- smk   Как сформировать коммандную строку из программы   Jan 31 2011, 17:14
- - skyled   Вопрос попроще. Есть строка: Кодchar * command=...   Feb 1 2011, 07:19
|- - _Bill   Цитата(skyled @ Feb 1 2011, 11:19) Вопрос...   Feb 1 2011, 08:16
- - skyled   Кодcml = Label1->Caption.c_str(); Всет...   Feb 1 2011, 08:30
|- - _Bill   Цитата(skyled @ Feb 1 2011, 12:30) Кодcml...   Feb 1 2011, 08:47
|- - Xenia   Цитата(skyled @ Feb 1 2011, 17:13) Вот та...   Feb 2 2011, 07:18
|- - _Bill   Цитата(Xenia @ Feb 2 2011, 11:18) bin_cod...   Feb 2 2011, 07:47
- - E.S.   OpenDialog и SaveDialog наверняка используют API G...   Feb 1 2011, 17:23
- - smk   Относительные пути использовать прийдется, т.к. не...   Feb 2 2011, 05:26
- - skyled   Кодunsigned char bin_code[2034];Массив, вк...   Feb 2 2011, 08:03
- - toweroff   Еще интересное поведение OpenDialog -- пока нет ру...   Feb 2 2011, 10:37
- - E.S.   ЦитатаОтносительные пути использовать прийдется, т...   Feb 2 2011, 11:34


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 03:24
Рейтинг@Mail.ru


Страница сгенерированна за 0.01378 секунд с 7
ELECTRONIX ©2004-2016