У меня есть приложение, которое прекрасно работает в Visual Studios 2008, и я пытаюсь установить его в VS 2010 для использования .NET 4, и у меня действительно странная проблема. Когда я запускаю код из режима выпуска или режима отладки с подключенным отладчиком (F5), у меня нет проблем с запуском программы. Однако, когда я запускаю программу из Release или Debug без отладчика (Shift + F5), я получаю исключение нарушения прав доступа при попытке запустить некоторый код в dll из GDCM . Я создал dll, используя CMake и Swig и следуя инструкциям здесь , корректируя инструкции там, где это необходимо для сборки для 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);
}
}
}