声闭颂空明:本人并不太懂C语言,也不知道什么是ShellExecute,以下回答仅供参考。
ShellExecute本身并不存在内存泄漏的固有BUG,然而在调用外部EXE程序时出现了内存泄漏,我觉得可能的原因是:
调用的API方法不正确;
外部exe的固有BUG;
外部exe不能被ShellExecute调用;
代码存在问题,比如打开了外部的exe程序却没有在使用完成后进行垃圾回收,据我所只C/C++的内存泄漏问题的大部分都是由于没有进行垃圾回收所造成轿瞎的。樱誉
以上。
fe函数名: exec...功 能: 装郑搭裤入并运行其它程序的函数
用 法: int execl(char *pathname, char *arg0, arg1, ..., argn, NULL)
int execle(char *pathname, char *arg0, arg1, ..., argn, NULL,
char *envp[])
int execlp(char *pathname, char *arg0, arg1, .., NULL)
int execple(char *pathname, char *arg0, arg1, ..., NULL,
char *envp[])
int execv(char *pathname, char *argv[])
int execve(char *pathname, char *argv[], char *envp[])
int execvp(char *pathname, char *argv[])
int execvpe(char *pathname, char *argv[], char *envp[])
程序例: /喊简* execv example */
#include <process.h>
#include <枝裂stdio.h>
#include <errno.h>void main(int argc, char *argv[])
{
int i printf("Command line arguments:\n")
for (i=0i<argci++)
printf("[%2d] : %s\n", i, argv[i]) printf("About to exec child with arg1 arg2 ...\n")
execv("CHILD.EXE", argv) perror("exec error") exit(1)
}
多看书,多Google,百度,
c#调用外部誉知exe程序,首先要using System.Diagnostics
然后开启一个新process
System.Diagnostics.ProcessStartInfo p=null
System.Diagnostics.Process Proc
p = new ProcessStartInfo("nnnn.exe","参数")
p.WorkingDirectory = exepath//设置此外颂虚孙部程序所在windows目录
Proc = System.Diagnostics.Process.Start(p)/野链/调用外部程序
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)