0

所以我是一名业余程序员,目前就读于我的第二学期 C++(昨天我们学习了结构,只是为了让你了解我所知道的......)。

我正在创建一个简单的程序来帮助我在实习期间归档文件。

我正在使用系统命令(是的,我知道它很危险并且存在很大的安全风险),在 Firefox 中打开 pdf,以便我可以看到文件并知道将其放在哪里。

我已经成功打开了firefox并打开了pdf。

但是我的程序停止运行,直到我关闭 Firefox。

我的问题是如何同时继续我的程序?

有没有更简单的方法在可执行文件中显示 pdf?

编辑:这是我用来打开包含 pdf 的 Firefox 窗口的功能:

无效的openPDFBrowser(字符数组[]){

ofstream outFile;
outFile.close();
outFile.open("PDF_browswer_handleScript.txt") ;
if(outFile.good())cout<<"OUTFILE GOOD" << endl;
outFile << "system("<<array<<")"<<endl;
system("PDF_browswer_handleScript.txt");
outFile.close();

}

.txt 文件包含: firefox C:\Scans\Attorney.pdf 其中 firefox 引用了一个 .bat 文件,其中包含 firefox.exe 的位置 我会接受任何建议

使用外部浏览器来处理 pdf 文件的显示似乎更容易,尽管我仍在研究这个线程的想法

4

1 回答 1

3

system是一个阻塞命令 - 这意味着它将停止您的执行,直到该函数返回。这样做的唯一方法是创建一个单独的线程(或创建一个单独fork的进程,如Chris Hayes所述),并在其中运行system(或CreateProcess,或exec),允许主线程继续。

于 2013-09-06T18:24:13.537 回答