.NET System :: Diagnostics ::使用DLL C ++的进程

时间:2014-05-12 22:06:55

标签: c++ .net

我当前的代码看起来像这样:

String^ callProcess(String^ cmd, String^ args)
{
    Process^ p = gcnew Process();
    p->StartInfo->UseShellExecute = false;
    p->StartInfo->RedirectStandardOutput = true;
    p->StartInfo->CreateNoWindow = true;
    p->StartInfo->Arguments = args;
    p->StartInfo->FileName = cmd;
    p->Start();
    p->WaitForExit();
    String^ output = p->StandardOutput->ReadToEnd();
    p->Close();

    return output;
}
int main()
{
    String^ output1 = callProcess("handle.exe","-arg1");
    String^ output2 = callProcess("handle.exe","-arg2");
}

handle.exe打开DLL的句柄,我们称之为HANDLE.DLL。在尝试查看output2后,它有类似“SomeClass Call中的错误......无法获得HANDLE.DLL的句柄”。

看起来第一次调用CallProcess没有正确释放DLL的句柄。有没有办法可以强制它释放DLL句柄?

0 个答案:

没有答案