4

Visual Studios 2008 で正常に動作するアプリケーションがあり、.NET 4 を使用するためにそれを VS 2010 に取り込もうとしていますが、非常に奇妙な問題があります。デバッガーを接続してリリース モードまたはデバッグ モードからコードを実行すると (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);
        }
    }
}
4

4 に答える 4

1

問題を伝えるために、GDCM固有のグループの使用を実際に開始する必要があります。以下を参照してください。

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

100人のGDCMユーザーがこのリストに含まれており、あなたを助けることができます。

バグの再現に役立つデータセット(DICOMファイル)も提供する必要があります。

ありがとう

于 2010-05-28T09:50:49.170 に答える
1

クライアント プロファイルは、クライアント マシンで必要になる可能性が低い.Net フレームワークのチャンクを見逃しています。たとえば、ASP .Net。このリンクを参照してください http://msdn.microsoft.com/en-us/library/cc656912.aspx

于 2010-05-28T12:06:50.377 に答える
1

これは、私が使用していた SWIG のバージョンが正しく動作していなかったためです。この問題を解決する SWIG の新しいバージョン (バージョン 2.0) が最近リリースされました。GDCM で CMake を再実行し、VS 2010 で GDCM を再構築し、GDCM dll をサンプル コードに戻すと、すべて正常に動作しました。

于 2010-06-07T16:19:46.393 に答える
0

プロジェクトのプロパティを確認してください。ターゲット フレームワークを .NET Framework 4.0 クライアント プロファイルに設定していたときに、クライアント プロファイルなしである必要があるのに、この問題が発生しました。またはその逆。

于 2010-05-27T20:41:12.583 に答える