我有一个在 Visual Studios 2008 中运行良好的应用程序,我正在尝试将它放入 VS 2010 以使用 .NET 4,但我遇到了一个非常奇怪的问题。当我从发布模式或调试模式运行代码并附加调试器 (F5) 时,运行程序没有问题。但是,当我在没有附加调试器(Shift+F5)的情况下从 Release 或 Debug 运行程序时,当我尝试在GDCM的 dll 中运行一些代码时,会出现访问冲突异常。我已经使用 CMake 和 Swig 创建了 dll,并按照此处的说明调整了为 VS 2010 和 .NET 4 构建所需的说明。
有没有人知道为什么会发生这种情况以及我该如何解决?
这是发生错误的程序示例。同样,如果您在 VS 2010 中使用以下程序创建一个项目,它会在附加调试器时运行良好,如果未附加调试器则失败。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using gdcm;
namespace GDCMVS2010Test
{
class Program
{
static void Main(string[] args)
{
if (args.Length != 1)
{
Console.WriteLine("This program prints the patient name of a dicom file with gdcm");
Console.WriteLine("Usage: [input.dcm]");
return;
}
gdcm.Reader reader = new gdcm.Reader();
reader.SetFileName(args[0]);
reader.Read();
gdcm.File file = reader.GetFile();
gdcm.StringFilter filter = new gdcm.StringFilter();
filter.SetFile(file);
string value = filter.ToString(new gdcm.Tag(0x0010, 0x0010));
Console.WriteLine("Patient Name: " + value);
}
}
}