none
ActiveX(COM)をVC++2005で利用する方法について RRS feed

  • 質問


  • 下記のURLに記載されております、標記の件で確認事項があります。
    http://msdn.microsoft.com/ja-jp/library/ms978506.aspx

    ある案件で、
     VC++6  +  VSFlexGrid 7.0J (Active X)でコーディングされた画面を
     VC++2005 にコンバージョンする作業を実施しております。
     ※VC++2005 以外のコンバージョンはNGです。

     本来は、VSFlexGrid 7.0Jの後継版(2005対応)のもので
     コンバージョンしたいのですが、生憎、VC++2005に対応している
     ものがないため、上記のURLに記載されている方法でコンバージョン
     する方法で進めております。

    上記方法をすることで
     ①VSFlexGrid 7.0J (Active X) の挙動が変わらないか?
     ②操作レスポンスは問題ないか?
    を心配されております。
    ②については、最小限にレスポンスダウンを抑えている旨が
    記載されておりますが、①については記載がないため、
    発生する事がない、と考えておりますがいかがでしょうか?
    また、上記方法で発生しうる問題点がありましたら、事前に把握したいため
    宜しくお願い致します。

    2011年4月11日 8:15

回答

  • >私の説明が不足しておりましたが、MFC作られた画面上にActiveXのコンポーネント(VSFlexGrid 7.0J)を、
    >そのままVisual C++ 2005 で使いたいだけです。
    そうですか。動作OSも同じOSを想定していますか?
    実装上は特に問題はないかと思いますが、
      >VSFlexGrid
      サポートしているOSなど、このソフト自体の動作要件は確認済みでしょうか?
    この点は確認されたほうが良いでしょう。

    • 回答としてマーク 山本春海 2011年4月25日 7:32
    2011年4月13日 9:28
  • Visual C++ 2005ではサポートされていないActiveXのコンポーネントを使っているため、
    十分な検証を行う、という事になると思いますが、発生しうる可能性として、問題点があればご教授
    頂きたく、お願い致します。

    よっぽど凝った作りでない限りは、開発環境と言うよりは動作環境によるところが大きいのかなと思っています。
    たとえば、Windows 7 でうまく描画されなかったり、周りと浮いた描画(古くさい描画とか)だったりするかもしれません。(この一文は VSFlexGrid と無関係です。誤解のないようにお願いします)
    Aero 有効なときと、そうでないときで動作が違ったりしないかとか、動作環境での特徴をついたテストをしていくことになるでしょう。

    開発環境がサポートされていないと言うことは、その組み合わせで使ったときに起こりうる問題について開発元は何もフォローしない、あるいはテストしていないと言うことです。
    何が発生しうるかはその作りに大きく依存し、一般例として挙げるのは難しいように思います。


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

すべての返信

  • >コンバージョン
    C++/CLIで作り直す、ということですか?

    >VSFlexGrid
    サポートしているOSなど、このソフト自体の動作要件は確認済みでしょうか?
    InstallerがなければCOM登録されませんから、Installerがあるのですよね?
    有償製品であれば、その点を事前にメーカーに確認されたほうが良いでしょう。
    サポートが受けられない場合は、十分に検証を行い利用することになるでしょう。
    (その場合、未サポートによるRiskは甘受しなければなりません)

    >①VSFlexGrid 7.0J (Active X) の挙動が変わらないか?
    一般的な話ですが、基本的に変わることはありません。
    しかし、Managed Codeで利用するにあたり、細かい描画上の動作不良があるかも知れません。
    そこは実際に試して確認されたほうが良いでしょう。

    >①については記載がないため、
    一つ一つのActive X Controlに対して検証は行えない(行えきれない)ため、記述していないのでしょう。
    また、動作の有無は基本的にActive X Controlを開発したメーカー側の責任でしょうね。

    >②操作レスポンスは問題ないか?
    Marshalingが走るため、Native Codeに比べれば多少はResponseが落ちます。
    特に大量のDataを処理する場合など最悪の状況を想定して確認することになりますね。

    2011年4月11日 9:46
  • 下記のURLに記載されております、標記の件で確認事項があります。
    http://msdn.microsoft.com/ja-jp/library/ms978506.aspx

    このページは .NET Framework の話をしていますが、本当に .NET Framework アプリケーションに持って行きたいのですか?
    この場合、Visual C++ 6.0 時代の Win32API プログラミングや MFC プログラミングとは大きく違ったやり方に鳴り、画面の再利用というレベルではありませんが、本当にそれがしたいのでしょうか?

    単純に Visual C++ 6.0 のプロジェクトを Visual C++ 2005 で読み込んで環境を移行したいだけなら、該当のページは全く参考になりません。(使えません・関係ありません)

    # Managed Code などは .NET Framework アプリケーションで作っていく場合に気にする用語です。
    # もし、MFC アプリケーションなどのネイティブアプリケーションとして作る場合は特に気にされなくて結構です。


    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。
    2011年4月11日 15:09
    モデレータ
  • Azuleanさん
    ご回答ありがとうございます。
    おっしゃるとおり、単純に Visual C++ 6.0 のプロジェクトを Visual C++ 2005 で読み込んで環境を移行したいのであり、
    .NET Framework を使う必要はありません。
    MFC作られた画面上にActiveXのコンポーネント(VSFlexGrid 7.0J)を、そのままVisual C++ 2005 で使いたいだけです。

    Visual C++ 2005 で自動変換されたコードでテスト中ですが、今のところ問題なく動いております。
    但し、ActiveXのコンポーネント(VSFlexGrid 7.0J)はVisual C++ 2005 をサポートしてないため、
    上記のURLで記載されている内容にVisual C++ 2005 側で自動で変換しているものと理解していました。

    Visual C++ 2005ではサポートされていないActiveXのコンポーネントを使っているため、
    十分な検証を行う、という事になると思いますが、発生しうる可能性として、問題点があればご教授
    頂きたく、お願い致します。

    2011年4月13日 9:16
  • kozzさん
    ご回答ありがとうございます。
    私の説明が不足しておりましたが、MFC作られた画面上にActiveXのコンポーネント(VSFlexGrid 7.0J)を、
    そのままVisual C++ 2005 で使いたいだけです。
    現在、Visual C++ 2005 で自動変換されたコードでテスト中ですが、今のところ問題なく動いております。
    但し、ActiveXのコンポーネント(VSFlexGrid 7.0J)はVisual C++ 2005 をサポートしてないため、
    上記のURLで記載されている内容にVisual C++ 2005 側で自動で変換(対応)しているものと理解していました。

    Visual C++ 2005ではサポートされていないActiveXのコンポーネントを使っているため、
    十分な検証を行う、という事になると思いますが、発生しうる可能性として、問題点があればご教授
    頂きたく、お願い致します。

    2011年4月13日 9:19
  • >私の説明が不足しておりましたが、MFC作られた画面上にActiveXのコンポーネント(VSFlexGrid 7.0J)を、
    >そのままVisual C++ 2005 で使いたいだけです。
    そうですか。動作OSも同じOSを想定していますか?
    実装上は特に問題はないかと思いますが、
      >VSFlexGrid
      サポートしているOSなど、このソフト自体の動作要件は確認済みでしょうか?
    この点は確認されたほうが良いでしょう。

    • 回答としてマーク 山本春海 2011年4月25日 7:32
    2011年4月13日 9:28
  • Visual C++ 2005ではサポートされていないActiveXのコンポーネントを使っているため、
    十分な検証を行う、という事になると思いますが、発生しうる可能性として、問題点があればご教授
    頂きたく、お願い致します。

    よっぽど凝った作りでない限りは、開発環境と言うよりは動作環境によるところが大きいのかなと思っています。
    たとえば、Windows 7 でうまく描画されなかったり、周りと浮いた描画(古くさい描画とか)だったりするかもしれません。(この一文は VSFlexGrid と無関係です。誤解のないようにお願いします)
    Aero 有効なときと、そうでないときで動作が違ったりしないかとか、動作環境での特徴をついたテストをしていくことになるでしょう。

    開発環境がサポートされていないと言うことは、その組み合わせで使ったときに起こりうる問題について開発元は何もフォローしない、あるいはテストしていないと言うことです。
    何が発生しうるかはその作りに大きく依存し、一般例として挙げるのは難しいように思います。


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