从 C 程序中打开可执行文件
您有时可能会发现自己需要从自己的 C 应用程序中执行外部程序。虽然使用 system() 似乎是一种简单的方法,但它会带来一定的风险和限制。本文探讨了使用 CreateProcess() 函数的更可靠方法。
创建新进程
CreateProcess() 函数允许您启动一个新进程并拥有它独立于您的调用应用程序运行。这是一个示例实现:
<code class="cpp">#include <windows.h> VOID startup(LPCTSTR lpApplicationName) { STARTUPINFO si; PROCESS_INFORMATION pi; ZeroMemory( &si, sizeof(si) ); si.cb = sizeof(si); ZeroMemory( &pi, sizeof(pi) ); CreateProcess( lpApplicationName, argv[1], NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi ); CloseHandle( pi.hProcess ); CloseHandle( pi.hThread ); }</code>
此函数将可执行文件的路径作为参数并为其创建一个新进程。然后该进程独立运行。
有效地使用 CreateProcess()
在示例代码中,argv[1] 参数应包含您的可执行文件的完整路径想要启动。例如,要执行与您自己的应用程序位于同一目录中的“OpenFile.exe”:
<code class="cpp">startup( "OpenFile.exe" );</code>
避免错误
您在使用系统时遇到的错误() 最有可能是由于未指定可执行文件的完整路径而导致的。 CreateProcess() 需要目标程序的绝对路径才能正确运行。
结论
使用 CreateProcess() 是从内部打开可执行文件的更安全可靠的方法一个 C 应用程序。它允许您控制执行环境并避免潜在的安全问题。
以上是如何可靠地执行 C 语言的外部程序?的详细内容。更多信息请关注PHP中文网其他相关文章!