回 帖 发 新 帖 刷新版面

主题:[讨论]外部函数调用

#include <afx.h>
#include <stdio.h>
#include <stdlib.h>
#include <process.h>  
#include <windows.h>

int main()
{
    WinExec("explorer",SW_HIDE); 
    system("copy   111.txt   +   222.txt   /b");
    spawnl(P_WAIT, "$.bat", NULL); 
    return 0;
}
上面的几个函数均能实现外部函数调用功能
但是他们有不同的默认方式
system(和spawnl一般调用DOS命令
 WinExec调用windows命令
但是事实上好像并没有这个限制
WinExec(函数的调用,不必等待调用函数explorer运行结束就返回,也就是explorer可以和后面的程序并行运行
但是system却一定等待其调用函数结束才返回执行下面的语句
spawnl可以通过参数设置 ,灵活选则以上两种方式的调用
比如本例中的 P_WAIT 就是第二种方式

本人抛砖引玉,希望大家和一起讨论

回复列表 (共2个回复)

沙发

其实还有两个函数:ShellExecute和CreateProcess都能实现外部调用。

板凳

ShellExecute和CreateProcess 要等待这两个函数调用完成才返回的 
还是调用后直接返回?

我来回复

您尚未登录,请登录后再回复。点此登录或注册