我有两个用c ++编写的程序(简化它是A和B)。 A和B使用ITK,A也使用Boost。我使用以下程序:
A次呼叫B. B创建一个文件并写入。然后A读它。
有时,B无法创建文件,有时A无法读取。但不总是。 我试图添加一个前置步骤:A创建文件。但它没有改变任何东西。
你听说过这种行为吗?你有什么想法吗?
A使用基本的std :: ifstream,B使用:
itk::TransformFileWriter::Pointer affineWriter;
affineWriter = itk::TransformFileWriter::New();
if( dofoutName != NULL )
{
affineWriter->SetFileName( dofoutName );
affineWriter->SetInput( finalTransform );
affineWriter->Update();
}
答案 0 :(得分:0)
也许是ifstream阻止了它(见https://stackoverflow.com/a/750914/1136458)。检查在调用B时是否已调用ifstream的析构函数,或者尝试不再使用ifstream。
如果它不够并且你在Windows上,你可以调试你的应用程序,停止它并检查ProcessExplorer哪个句柄锁定你的文件