• 締切
  • すぐに回答を!

コンパイル時に警告発生「MSXML2・・・」の件

  • 質問No.9625753
  • 閲覧数82
  • ありがとう数0
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 63% (24/38)

VB2017でプロジェクトをビルドすると次の警告が出てしまいます。
どなたかご教授頂けると助かります。宜しくお願いします。

ちなみにコンパイルの対象CPUは、AnyCPUで「32ビットを優先」のチェックを外しています

●警告
「COM 参照 "MSXML2" をパス "C:\Windows\SysWOW64\msxml6.dll" から処理しています。'SAXAttributes60.getValue' の引数のうち少なくとも 1 つをランタイム マーシャラーでマーシャリングできません。 したがってこのような引数はポインターとして渡され、アンセーフ コードの使用が必要になります。」

●環境
Windows10 Pro
Visual Stadio 2017

●プロジェクトの参照設定
Microsoft XML 6.0

以上、宜しくお願いします。

回答 (全1件)

  • 回答No.1

ベストアンサー率 59% (956/1613)

[技術者向] コンピューター カテゴリマスター
.NETではメモリー領域のライフタイムが自動で管理され、不要になれば自動で解放されます。
これはマネージド環境と呼ばれています。
.NETではないランタイム環境ではメモリー領域はセルフ管理です。
これはアンマネージド環境と呼ばれています。

マーシャラーはこのマネージドとアンマネージドの仲介をするクラスですが、利用には前提があって、その前提から外れる処理が必要になっているので、前提に合うようアンセーフコード(マネージドで記述するアンマネージド処理を指す)が必要になっているというメッセージです。

マネージドでランタイム環境が行っているリソース管理検査がアンセーフコード内の処理については行えないので、メモリーリークやランタイムエラーの原因になる事があるための警告ですが、VBではビルド時に内部で自動生成されている要素に対してのそのメッセージの原因に対しては手出しができません。
唯一できる可能性があるとすればワーニングを黙らせる事くらいです。
https://www.atmarkit.co.jp/fdotnet/dotnettips/856vsdisablewarning/vsdisablewarning.html
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ