none
PlatformSDK(WindowsSDK)とVS2008について RRS feed

  • 質問

  • お世話になります。

    VS2008をインストールすると、次の2つのバージョンのPlatfromSDK(WinSDK)も一緒にインストールされます.
    既定の場合、c:\program files\microsoft sdks\windowsフォルダに
    ・v5.0
    ・v6.0A

    v5.0のフォルダのlibフォルダには、IA64のフォルダがあり、x64(or amd64)またはが見つかりません。
    v6.0Aのライブラリフォルダには、x64フォルダがあります。

    それで、v5.0のライブラリは、下記のフォルダにあるものと思っているのですが・・・

    C:\Program Files\Microsoft Visual Studio 9.0\vc\lib

    間違っていないでしょうか。

    また、

    C:\Program Files\Microsoft Visual Studio 9.0\vc\lib\amd64のフォルダ名は、x64と同じこと指してしているのでしょうか。

    教えてください。

     

     

     

    2010年7月30日 2:05

回答

  • これまでの話を見ていて感じたのですが、そもそもVisualStudio2008でsdk V5.0を使う事自体は
    OKなのでしょうか?その部分の確認が取れていて使われているのであれば杞憂だと思うのですが、
    確認が取れていない場合にそもそも使う事は出来ないと言う事は考えられませんか?

    sdkの方が開発環境よりも古い状態なのでもしかすると新しいIDEとの組み合わせは出来ないのでは
    ないかと感じています。特に新しいIDEに付属しているランタイム系のライブラリとぶつかったりはしないのか
    と言う点が気になります。古いsdkで参照しているランタイムと新しいIDEで既定になっているランタイムの間で
    食い違い等があるとうまく行かない気がします。

    使えて当然の状態で使え無いのであれば問題ですが、使えない状況なのであればなんとかしようとする事自体が無理と言うことも有りそうに思うのですが。

     


    解決した時は、参考になったレスポンスの所にある[回答としてマーク]ボタンをクリックしてスレッドを締めましょう。
    • 回答としてマーク TAKAKUN 2010年8月4日 1:03
    2010年8月2日 9:40
  • 将来のために、VC6からVS2008へプロジェクトを移植中なのですが、
    まずはコンパイルを通すことを目的にしており、VS2008と同時にインストールされた、
    c:\program files\microsoft sdks\windowsv5.0 へパスを通すとコンパイルが通ったものですから、
    安心していたのですが、よくみるとそのフォルダにはライブラリファイルがなかったため、
    どこにあるのだろうかと、質問させていただいたわけです。

    インストールされるかもしれませんが、本来の組み合わせではないと推測されます。
    lib フォルダに求めるものがないこと、v6.0A がメインとなっていることから容易に推測できると思います。

    なお、v5.0 に対応する SDK が何かはわかりません。
    少なくとも、Windows SDK for Vista よりも前ですが、Windows Server 2003 R2 Platform SDK のインストールパスは違うようですから、特定ができていません。

    CDispatchが定義されていないということらしいのですが、V5.0では、
        IStringList : public IDispatch 
    となっており、コンパイルがとおるのです。

    Visual C++ 2008 付属の v6.0A でも、IDispatch のようですよ。
    v6.1 のパスを参照されているようですが、v6.0A を参照してみてはいかがでしょうか。

    # なぜ、v6.0 をすっ飛ばして、v5.0 にいっているのかが不思議。


    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。
    • 回答としてマーク TAKAKUN 2010年8月4日 1:03
    2010年8月2日 14:37
    モデレータ

すべての返信

  • それで、v5.0のライブラリは、下記のフォルダにあるものと思っているのですが・・・
    C:\Program Files\Microsoft Visual Studio 9.0\vc\lib
    間違っていないでしょうか。

    そのフォルダにあるのは、VC 関連の lib だけです。
    Platform SDK / Windows SDK の lib はそのフォルダにはありません。

    ところで、なぜ、5.0 のフォルダを気にしているのでしょうか。
    Visual Studio 2008 とセットでインストールされるライブラリでメインとなるのは、6.0 のはずです。

    また、
    C:\Program Files\Microsoft Visual Studio 9.0\vc\lib\amd64のフォルダ名は、x64と同じこと指してしているのでしょうか。
    教えてください。

    AMD64 で検索して出てくるサイトをいくつかみれば、x64 との関連性がわかりませんか?


    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。
    2010年7月30日 14:24
    モデレータ
  • ご返事ありがとうございます。
    ところで、なぜ、5.0 のフォルダを気にしているのでしょうか。
    Visual Studio 2008 とセットでインストールされるライブラリでメインとなるのは、6.0 のはずです。


    コンパイルが通らないことが、理由の一つにあります。
    将来のために、VC6からVS2008へプロジェクトを移植中なのですが、
    まずはコンパイルを通すことを目的にしており、VS2008と同時にインストールされた、
    c:\program files\microsoft sdks\windowsv5.0 へパスを通すとコンパイルが通ったものですから、
    安心していたのですが、よくみるとそのフォルダにはライブラリファイルがなかったため、
    どこにあるのだろうかと、質問させていただいたわけです。

    コンパイルエラーとなる一つが、

    エラー 2 error C2504: 'CDispatch' : 定義されていない基本クラスが宣言されています。 C:\Program Files\Microsoft SDKs\Windows\v6.1\include\asptlb.h 231 MyApp

    その個所は、下記のように定義されており、
        IStringList : public CDispatch

    CDispatchが定義されていないということらしいのですが、V5.0では、

        IStringList : public IDispatch 

    となっており、コンパイルがとおるのです。

    sdk7.0で、IDispatchに修正されているということなので、それも試すつもりではいるのですが、まずは5.0でコンパイルしたいと考えております。

     

    2010年8月2日 5:59
  • これまでの話を見ていて感じたのですが、そもそもVisualStudio2008でsdk V5.0を使う事自体は
    OKなのでしょうか?その部分の確認が取れていて使われているのであれば杞憂だと思うのですが、
    確認が取れていない場合にそもそも使う事は出来ないと言う事は考えられませんか?

    sdkの方が開発環境よりも古い状態なのでもしかすると新しいIDEとの組み合わせは出来ないのでは
    ないかと感じています。特に新しいIDEに付属しているランタイム系のライブラリとぶつかったりはしないのか
    と言う点が気になります。古いsdkで参照しているランタイムと新しいIDEで既定になっているランタイムの間で
    食い違い等があるとうまく行かない気がします。

    使えて当然の状態で使え無いのであれば問題ですが、使えない状況なのであればなんとかしようとする事自体が無理と言うことも有りそうに思うのですが。

     


    解決した時は、参考になったレスポンスの所にある[回答としてマーク]ボタンをクリックしてスレッドを締めましょう。
    • 回答としてマーク TAKAKUN 2010年8月4日 1:03
    2010年8月2日 9:40
  • 将来のために、VC6からVS2008へプロジェクトを移植中なのですが、
    まずはコンパイルを通すことを目的にしており、VS2008と同時にインストールされた、
    c:\program files\microsoft sdks\windowsv5.0 へパスを通すとコンパイルが通ったものですから、
    安心していたのですが、よくみるとそのフォルダにはライブラリファイルがなかったため、
    どこにあるのだろうかと、質問させていただいたわけです。

    インストールされるかもしれませんが、本来の組み合わせではないと推測されます。
    lib フォルダに求めるものがないこと、v6.0A がメインとなっていることから容易に推測できると思います。

    なお、v5.0 に対応する SDK が何かはわかりません。
    少なくとも、Windows SDK for Vista よりも前ですが、Windows Server 2003 R2 Platform SDK のインストールパスは違うようですから、特定ができていません。

    CDispatchが定義されていないということらしいのですが、V5.0では、
        IStringList : public IDispatch 
    となっており、コンパイルがとおるのです。

    Visual C++ 2008 付属の v6.0A でも、IDispatch のようですよ。
    v6.1 のパスを参照されているようですが、v6.0A を参照してみてはいかがでしょうか。

    # なぜ、v6.0 をすっ飛ばして、v5.0 にいっているのかが不思議。


    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。
    • 回答としてマーク TAKAKUN 2010年8月4日 1:03
    2010年8月2日 14:37
    モデレータ
  • ご返事ありがとうございます。

    vsvars32.batをみてみると、$(WindowsSdkDir)の環境変数は、6.0Aを指しており
    $(WindowsSdkDirIA64)のパスは、Microsoft SDKs\Windows\v5.0\Lib\IA64
    を指していることがわかりました。

    v5.0のフォルダは、IA向けにモジュールを生成するためにできたフォルダみたいですね。

    Microsoft Platform SDK - February 2003 Edition =5.0と思っていたもので・・・
    v5.0のフォルダがあるから、いけると思っていしまったのが問題だったと思われます。

    あと、6.1をアンインストールしたらビルド通りました・・・

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

     

    2010年8月4日 1:03