Есть во такой обработчик нажатия кнопки:
Код
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 *' Как правильно это сделать? Спасибо.
Живи днем так, чтобы ночью ты спал спокойно.