2017年3月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  

最近のトラックバック

無料ブログはココログ

« Visual Studio Community 2015 をインストール | トップページ | OuDiaのホームページは移転しました »

2016年8月27日 (土)

Visual Studio 2015 でビルドしたOuDiaは正しく動作しない

Visual Studio 2015 を使用してOuDiaをビルドしてみましたが、これが正しく動作しません。

正常にビルドされたOuDiaでは、ファイルを開いた直後は、作業領域にはウインドウが1つも無い状態になります。
ところが、Visual Studio 2015 でビルドされた OuDia では、ファイルを開いた直後、作業領域に白一色のウインドウが表示されます。また、いくつかのビューを開いたり閉じたりしているうちに、アプリケーションエラーになることもあります。

少し調べてみたところ、以下のメンバ関数が動作していないことが分かりました。

CDocument* OuMfc::HideMdi::CHidemdiRootDoctmpl::
    OpenDocumentFile(
        LPCTSTR lpszPathName
        , BOOL bMakeVisible )

この関数は、CMultiDocTemplate::OpenDocumentFile() をオーバーライドすることによって動作します。しかし、Visual Studio 2015 に添付されているMFCでは、この関数の引数が以下のように変わっているようです。

    ◎VisualStudio 2008
    CDocument* CMultiDocTemplate::OpenDocumentFile(
        LPCTSTR lpszPathName,BOOL bMakeVisible)

    ◎VisualStudio 2015
    CDocument* CMultiDocTemplate::OpenDocumentFile(
        LPCTSTR lpszPathName, BOOL bAddToMRU, BOOL bMakeVisible)

CMultiDocTemplate::OpenDocumentFile() は、MSDNで文書化されていないメンバー関数です。非公開の関数は、ライブラリのバージョンアップ時に、仕様が突然変更されるケースがあります。そういうものを使用していると、こういうことも起こってしまいます。

« Visual Studio Community 2015 をインストール | トップページ | OuDiaのホームページは移転しました »

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/186995/64115821

この記事へのトラックバック一覧です: Visual Studio 2015 でビルドしたOuDiaは正しく動作しない:

« Visual Studio Community 2015 をインストール | トップページ | OuDiaのホームページは移転しました »