我当前的代码看起来像这样:
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句柄?