• ベストアンサー

項目としてDLL内に含まれるXMLへのアクセス方法

項目としてDLL内にXMLを入れてビルドしメッセージソースにしようと考えています。 どのようにDLL内のXMLにアクセスすればよいでしょうか? 外部のXMLへのアクセスはわかるのですが内部のXMLへのアクセスはいまいちよくわかりません。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

VB.NET 以降を前提に書きます。 # MSDNへのURLが120文字を超えるので,全て本文に書いています。 EXE/DLL内に埋め込んだリソースは,System.Reflection.AssemblyのGetManifestResourceStreamメソッドで取得することができます。 → http://msdn2.microsoft.com/ja-jp/library/xc4235zt(VS.80).aspx この時指定するリソースの名前は,デフォルトの名前空間名 + ファイル名になります。 → http://msdn2.microsoft.com/ja-jp/library/0c6xyb66(VS.80).aspx 私の場合,ビルドしてReflectorで覗くことによって取得していますが……。 → http://www.aisto.com/roeder/dotnet/ これで得られたStreamをXmlDocument.LoadなりXmlReader.Createなりに渡すことで,今まで通りアクセスすることができます。

izayoimizuki
質問者

お礼

ありがとうございます。 うまくいきました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • eclipseをバージョンアップしたら、build.xmlでエラー

    eclipseをバージョンアップしたら、build.xmlでエラー eclipseを、3.2から3.5にインストールし直したところ、3.2で正常にビルド/動作していたのにエラーメッセージが付くようになってしまいました。具体的には、antを使ったbuild.xmlの一行目で、以下の行です。 <?xml version="1.0" encoding="utf-16"?> エラーメッセージは、「プロローグにコンテンツは許されません。」というものです。 ソースコードを含め、build.xmlも何も変更していませんし、半角のつもりが全角だったということもありませんでした。ためしに「utf-16」を「utf-8」に変更すれば、エラーはでなくなりました。ですが、ソースコードはUTF-8ではなくUTF-16で書かれているので、この状態では実行できてもおかしくなりますよね?eclipseメニューの「編集」-「エンコードの設定」では、デフォルトでもUTF-16になっています。 このエラーが出る原因は何でしょうか?どうすれば解決するでしょうか。また、どこかの設定を確認する必要がありますでしょうか。 ちなみに3.6で試してみても同じ現象が出ました。それ以外のバージョンは試していません。 当方、javaやeclipseの使用経験は、あまりありません。

    • ベストアンサー
    • Java
  • DLLへのアクセス

    同じDLLに対して、VBとVCでアクセスしている場合に 想定外のエラーが出たことはありますか? 2個のプログラムから同じDLLにアクセスする場合は、DLL名を別名にした方がいいのでしょうか?

  • Windows7で自作dllを呼び出す方法

     先日の質問(*)の続きですが、自分で自分の質問に補足出来ないのと状況が変わったので別質問にしました。  (*)EXCEL2010から外部DLLをCall出来ない 状況  MS社のサイトより評価版のWindows7とoffice2010をダウンロードし新規HDDにインストールして環境を作成した。  新規作成環境のCドライブにtempフォルダを作る。  WindowsXPとExcel2003では問題なく動いていたExcel用の外部DLLがc:\tempでは動かなかった。 (ここまでは前回の質問)  調査結果  Windows7とExcel2003でも同じ状況、同じエラーを起こす。つまり、問題はexcel2010ではなく、Windows7でした。  「実行時エラー48 ファイルが見つかりませんC:\Temp\testDll.dll」というエラーメッセージですが、 C:\Temp\testDll.dll を物理的に削除してしまうとエラーメッセージは「実行時エラー53 ファイルが見つかりませんC:\Temp\testDll.dll」に変わります。つまり、testDll.dllの存在有無は分かっているが、「見つからない」と言っているようです。先の質問に頂いたアクセス権の問題のようです。  Windows7+Excel2003でtestDll.dllを見つけられないと言っている環境でIntelのfortranコンパイラテスト版をインストールしてみました。すると、エラーなく正常に動くのです。  つまり、フォルダとか、ファイルのアクセス権とは関係ないところで、コンパイラをインストールするだけで実行時エラー48は解消しました。 ここからが今回の質問  コンパイラをインストールするだけで変わる様なものは何でしょうか?  コンパイラを入れなくてもエラー48を出さない様にする為に調べるべき項目は何でしょうか?

  • IE8でXML文書を表示させるには?

    InternetExplore、V8を使っていますが、XML文書がソース表示されてしまします。 ソースではない形で表示するにはどうしたらいいのでしょうか? MSXML4.dllの説明を読んでもよく分かりません。お助け下さい。

  • 1つのDLLにソースを1500個ほど追加してビルドを行なったところ..

    1つのDLLにソースを1500個ほど追加してビルドを行なったところ vc60.idbが 35MBぐらいになり、以下のようなエラーが表示されてビルドが止まります。 環境:Visual C++ 6.0 x:\xxxx.cpp(19) : fatal error C1073: インクリメンタル コンパイルを伴う内部エラーが発生しました(コンパイラ ファイル '.\main.c', 行番号 629) xxxx.CPP vc60.idb削除すると、エラーが表示されなくなり最後までビルドが行なわれます。 よい知恵などありましたら、よろしくお願いいたします。

  • XMLのnamespaceへのアクセス方法

    初めまして、PHPプログラミング初心者です。 例としまして。 <xml>  <data>   <aa:A1>    <aa:A2>     <aa:A3>これが取りたい</aa:A3>    </aa:A2>   </aa:A1>  </data> </xml> このように同じnamespaceが連続している場合の<aa:A3>までの アクセス方法をご教授願います。

    • 締切済み
    • XML
  • XMLについて

    HTMLで書かれたソースデータの中にはWebページ上で表示されている文字が記述されているじゃないですか?XMLで書かれたソース内にもそのような文字がすべて記述されているのですか? XMLを用いてWebページを作るということができるのでしょうか? XMLを使用しているページを知っていたら教えてください。お願いします。

    • ベストアンサー
    • XML
  • dll作成

    Visual studio2012利用し、 Win32プロジェクト から DLLを選んで、テンプレートに、関数を記入。ヘッダファイルを追加し、そこに関数の宣言を書いた。 ビルドすると、Debugフォルダに.dllは作成され、exeファイルが作成されない。 デバックなしで開始するとdllは開始できません。とメッセージがでます。 作成されたdllファイルの開始の仕方を、教えてください。

  • WMASF.DLLが見つからない、と出ます。対策方法は?

    検索しましたがヒットしませんでしたので質問させていただきます。 Picasa2のバージョン2.7.0(ビルド37.36.0。文字がつぶれていて、ビルドなのかピルドなのか分からなかったのですが…)を使っています。 昨日(2/2)までは問題なく使えていたのですが、今日使用しようとしたところ、ポップアップで次のエラーメッセージが出てしまいました。 『moviethumb.exe コンポーネントが見つかりません WMASF.DLLが見つからなかったため、このアプリケーションを開始できませんでした。アプリケーションをインストールし直すとこの問題は解決される場合があります。』 このエラーメッセージに対して5回ほど「OK」ボタンを押すと、一応使えるようではありますが、大変不安ですしいちいちOKボタンを押すのが煩わしいです。 解決策をお教えいただけましたら幸いです。 「WMASF.DLL」という単語で検索してみたところ「WMASF.DLL」が画像にかかわるファイル?ということはうっすら分かったのですが。。 どうにも困っております。 ちなみに今日(2/3)にやったことは、ノートンアンチウィルスソフトをこの方法で削除しただけ、なのですが。 これが影響があるのでしょうか。 http://www.oshiete-kun.net/archives/2007/06/08_0021.html 当方のパソコンはWindowsXPで自作機(ショップで作っていただきました)です。 他に補足すべき情報がありましたらご教示くださいますと助かります。 どうぞよろしくお願いいたします。

  • DLL内のイベントをハンドリング

    VB2008にて、外部DLL(VB2008作成)を使用しようと考えています。 外部DLLの仕様書には、メソッド、イベント、プロパティが記載されており、 外部DLLの発生させるイベントをハンドリングしたいのですがうまくいきません。 「参照の追加」にてDLLを指定し、ソース内で該当DLLのクラスもインスタンス化し、 DLL内のメソッドは使用できています。 イベントに関して仕様書には Event001(Byval arg1,Byval arg2)、Event002(Byval arg1,Byval arg2)、Event003… このように記載されています。 該当DLLのインスタンス化したものをTestClassとして、 Public Event TestEvent Handles TestClass.Event001 という記載では駄目でした。 外部DLLのイベントのハンドリングについて、ご教授頂けましたら幸いです。