- PR -

VC++6.0で開発

投稿者投稿内容
あんず
会議室デビュー日: 2002/03/08
投稿数: 5
投稿日時: 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/01/18
投稿数: 4
お住まい・勤務地: 神奈川県
投稿日時: 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/08
投稿数: 5
投稿日時: 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/01/18
投稿数: 4
お住まい・勤務地: 神奈川県
投稿日時: 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/02/21
投稿数: 18
お住まい・勤務地: 阪神地域
投稿日時: 2002-03-13 09:28
# ついMSXmlと呼んでしまう……
知ってる事かもしれませんが念のため。
MSXMLには「最大深刻度 : 高」な問題が公表されていますので、注意してください。
(詳細はマイクロソフトセキュリティ情報のページにあります。
現在日本語版パッチはMSXML Ver.4にだけあります)
あんず
会議室デビュー日: 2002/03/08
投稿数: 5
投稿日時: 2002-03-13 10:35
がめら様、水無月神魔様、アドバイスありがとうございます。

MSXMLについては、ターゲットマシンにあれば使うということで、
インストールはしない予定でいます。
できれば少しでも幅広くIE5.0以上がインストールされている環境なら
使えるようにと思ってmsxml.dllをimportしているのですが、
そもそもこの考え方自体に誤りがあったりしますか?
msxml3.dllをimportしたら、msxml3.dllが入っていないと
使えないんですよね?
がめら
会議室デビュー日: 2002/01/18
投稿数: 4
お住まい・勤務地: 神奈川県
投稿日時: 2002-03-13 15:56
引用:
msxml3.dllをimportしたら、msxml3.dllが入っていないと
使えないんですよね?



確認してみましたが、その通りです。
システムディレクトリの下の、msxml3.dllを一旦リネームして実行することで
簡単に確認できると思います。

引用:
MSXMLについては、ターゲットマシンにあれば使うということで、
インストールはしない予定でいます。
できれば少しでも幅広くIE5.0以上がインストールされている環境なら
使えるようにと思ってmsxml.dllをimportしているのですが、
そもそもこの考え方自体に誤りがあったりしますか?


これからは、あくまでも個人的意見なので、参考程度に聴いてください。
作成したプログラムをどのような用途に利用するかによると思います。
恥ずかしながら私は知らなかったですが、水無月神魔さんの指摘ではmsxml.dllには
セキュリティホールがあるそうです。

世の中に出すプログラムにセキュリティホールのあるDLLを前提にすることは、
お勧めはできません。
世の中に出回らないプログラムならば、それもOKだと思います。

では、世の中に出回らせるケースはどうするかというと、msxmlは再配布可能なはずなので、
プログラムと一緒に配布することを考えた方が良いと思います。
井上孝司
ぬし
会議室デビュー日: 2001/09/08
投稿数: 668
お住まい・勤務地: 東京都
投稿日時: 2002-03-13 18:47
井上です。
セキュリティホールの話は別として、MSXML.DLL だと実装されている仕様が古い
可能性があるので、むしろそっちが問題になるかもしれません。有名なところで
は、XSLT がドラフト版しか載っていないというのがありますが、その他の部分
でも、似たような話があるかもしれません。

現時点で、Windows XP は MSXML3.DLL を標準装備します。あと、IE6 か Office
XP をセットアップした場合も、MSXML3.DLL が一緒に入ります。
ですから、「MSXML3 をセットアップしてください」という説明をしづらい場合
は、「IE6 をセットアップしてください」と言い換える手もありそうです
_________________
www.kojii.net

スキルアップ/キャリアアップ(JOB@IT)