繁体   English   中英

访问冲突异常仅在未附加调试器的情况下运行C#app时出现

[英]Access Violation Exception only appearing when running C# app without debugger attached

我有一个在Visual Studios 2008中运行良好的应用程序,我试图将其纳入VS 2010以便使用.NET 4,我有一个非常奇怪的问题。 当我从发布模式或调试模式运行代码并附带调试器(F5)时,我没有运行程序的问题。 但是,当我在没有附加调试器的情况下从Release或Debug运行程序时(Shift + F5),当我尝试从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);
        }
    }
}

您应该真正开始使用GDCM特定组来传达您的问题,请参阅:

http://sourceforge.net/apps/mediawiki/gdcm/index.php?title=General_questions#Where_are_the_GDCM_mailing_lists_.3F

100名GDCM用户在此列表中,可以为您提供帮助。

您还应该提供数据集(DICOM文件)以帮助重现错误。

谢谢

客户端配置文件错过了客户端计算机上不太可能需要的.Net框架块。 以ASP .Net为例。 请参阅此链接http://msdn.microsoft.com/en-us/library/cc656912.aspx

这是因为我使用的SWIG版本无法正常工作。 最近发布了一个新版本的SWIG(版本2.0),它解决了这个问题。 在我重新使用GDCM上的CMake,然后使用VS 2010重建GDCM,并将GDCM dll放回到我的示例代码中之后,一切正常。

检查您的项目属性。 当我将Target Framework设置为.NET Framework 4.0 Client Profile时,我遇到了这个问题,当它应该是一个w / out Client Profile时。 或相反亦然。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM