Имея странные проблемыпобег символ, который будет включен в строку
sprintf(tmp, "\"%s\"", filename);
Я ожидаю, что выход будет
"filename"
, но вместо этого я получаю
\"filename\"
Что здесь происходит?
=============================
extern "C" void __export __pascal MyFunc(LPTSTR m_avi, LPTSTR m_mpg)
{
int frameRate = 20;
char szAVI[MAX_PATH], szMPG[MAX_PATH];
#ifdef UNICODE
wcstombs(szAVI, m_avi, _tcslen(m_avi) + 1);
wcstombs(szMPG, m_mpg, _tcslen(m_mpg) + 1);
#else
strcpy(szAVI, m_avi);
strcpy(szMPG, m_mpg);
#endif
//Call to ffmpeg.exe
char cmdline[1000] = "ffmpeg ", tmp[50];
//Overwrite without asking
strcat(cmdline, "-y ");
//Input file
sprintf(tmp, "-i \"%s\" ", szAVI);
strcat(cmdline, tmp);
//Lock output at 20 frames per second
sprintf(tmp, "-r %i ", frameRate);
strcat(cmdline, tmp);
//Output file
sprintf(tmp, "\"%s\"", szMPG);
strcat(cmdline, tmp);
WinExec(cmdline, SW_HIDE);
}
Можем ли мы увидеть остальную часть программы, как что-то на http://ideone.com? – Potatoswatter
Да, информации здесь недостаточно, чтобы рассказать. Это отлично работает для меня: http://ideone.com/EEhxH – bames53
Возможно, я неправильно понял, что вы делаете, но я не понимаю, что вы получаете. Мой вывод - «имя файла». Можете ли вы опубликовать более крупный пример кода? – Stefan