- - PR -
VC++6.0で開発
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2002-03-08 10:49
MSXMLパーサーを使ってXMLを読み込むアプリケーションを作成しようと思っています。
使う関数はV2レベルのもののみです。 Microsoftのサンプルコードをダウンロードしてきて、コンパイルしたところ、 'msxml.dll':No such file or directory というエラーが出てしまいます。 http://www.utj.co.jp/xml/dev/dom/dxdom1_1.html を参考に、 http://www.asia.microsoft.com/japan/developer/workshop/xml/general/xmlfaq.asp の「Visual Studio 6.0 C++ の中で MSXML COM コンポーネントをどのように使えますか?」というところにかいてある、INETSDKダウンロードページに飛ぶとNot Foundになってしまいます。 あちこち探してみたのですが、さっぱりわかりませんでした。 C++自体、DLLを組み込んだりしたこともなくて、MSXML.DLLをimportするには何をどうしていいのか、真っ暗闇の中手探り状態です。 MSXML.DLLをimportするにはどこで何をDLしてきて、どのようにすればいいのか教えていただけないでしょうか。 このような質問は恥ずかしいのですが、本当に困っております。 なにとぞよろしくお願いします。 [ メッセージ編集済み 編集者: あんず 編集日時 2002-03-08 10:50 ] | ||||||||
|
投稿日時: 2002-03-11 14:25
すでにダウンロード済みで見当違いかもしれませんが、恐らく参考のページにある通り
最新のSDKをインストールすることで、実行可能だと思います。(未確認) 最新のSDKのURLは以下の通りです。 http://msdn.microsoft.com/downloads/sample.asp?url=/msdn-files/027/000/542/msdncompositedoc.xml | ||||||||
|
投稿日時: 2002-03-11 16:42
がめら様、アドバイスありがとうございます(感涙)
早速DLしてきました。 ヘルプファイル(xmlsdk30.chm)と msxml2.h、msxml2.idl、msxml2did.h、msxml2.libが インストールされました。 ヘルプファイルを見たのですが、msxml.dllのimportに関する記述が 見つけられませんでした。 それで、ここからどうしたらいいのでしょうか・・。 IE5と6のヘッダーとライブラリというのもDLしたのですが。 (この中にmsxml.hはありました。) あまりにも基本的で呆れた質問かもしれませんが、 なにとぞなにとぞアドバイスをお願いいたします。 | ||||||||
|
投稿日時: 2002-03-12 10:57
SDKを入れれば動作すると言うのは、間違いでした。
それよりも、msxml.dllが無いといけないようです。 ところが、MSがバージョンをいくつかリリースおりバージョンによってDLL名が 異なるようです。<MSの得意技 自分のPC内「msxml」でdllを検索し、バージョンを確認してください。 OSにもよりますが、%SYSTEM%(95系ならWINDOWS\SYSTEM NT系ならWINNT\SYSTEM32)に msxml?.dllが見つかるはずです。(?は1〜3) (私の環境には、msxml.dllとmsxml3.dllがありました。) ない場合は、ダウンロードする必要があります。 http://msdn.microsoft.com/downloads/sample.asp?url=/MSDN-FILES/027/001/772/msdncompositedoc.xml から、Download Japanese Setup (659 KB) を選択してDL->インストールして ください。 その後、プログラムの先頭宣言を以下のように修正してください。 #import "msxml.dll" -> #import "msxml3.dll" using namespace MSXML; -> using namespace MSXML2; これで取りあえず、該当のエラーは出ないと思います。 | ||||||||
|
投稿日時: 2002-03-13 09:28
# ついMSXmlと呼んでしまう……
知ってる事かもしれませんが念のため。 MSXMLには「最大深刻度 : 高」な問題が公表されていますので、注意してください。 (詳細はマイクロソフトセキュリティ情報のページにあります。 現在日本語版パッチはMSXML Ver.4にだけあります) | ||||||||
|
投稿日時: 2002-03-13 10:35
がめら様、水無月神魔様、アドバイスありがとうございます。
MSXMLについては、ターゲットマシンにあれば使うということで、 インストールはしない予定でいます。 できれば少しでも幅広くIE5.0以上がインストールされている環境なら 使えるようにと思ってmsxml.dllをimportしているのですが、 そもそもこの考え方自体に誤りがあったりしますか? msxml3.dllをimportしたら、msxml3.dllが入っていないと 使えないんですよね? | ||||||||
|
投稿日時: 2002-03-13 15:56
確認してみましたが、その通りです。 システムディレクトリの下の、msxml3.dllを一旦リネームして実行することで 簡単に確認できると思います。
これからは、あくまでも個人的意見なので、参考程度に聴いてください。 作成したプログラムをどのような用途に利用するかによると思います。 恥ずかしながら私は知らなかったですが、水無月神魔さんの指摘ではmsxml.dllには セキュリティホールがあるそうです。 世の中に出すプログラムにセキュリティホールのあるDLLを前提にすることは、 お勧めはできません。 世の中に出回らないプログラムならば、それもOKだと思います。 では、世の中に出回らせるケースはどうするかというと、msxmlは再配布可能なはずなので、 プログラムと一緒に配布することを考えた方が良いと思います。 | ||||||||
|
投稿日時: 2002-03-13 18:47
井上です。
セキュリティホールの話は別として、MSXML.DLL だと実装されている仕様が古い 可能性があるので、むしろそっちが問題になるかもしれません。有名なところで は、XSLT がドラフト版しか載っていないというのがありますが、その他の部分 でも、似たような話があるかもしれません。 現時点で、Windows XP は MSXML3.DLL を標準装備します。あと、IE6 か Office XP をセットアップした場合も、MSXML3.DLL が一緒に入ります。 ですから、「MSXML3 をセットアップしてください」という説明をしづらい場合 は、「IE6 をセットアップしてください」と言い換える手もありそうです _________________ www.kojii.net |