VC++2013 の MFC プロジェクトが単純アプリもコンパイルできない件

1>c:\program files (x86)\windows kits\8.1\include\um\sysinfoapi.h(126): error C4996: 'LPMEMORYSTATUSEX': が古い形式として宣言されました。
1>          c:\program files (x86)\windows kits\8.1\include\um\sysinfoapi.h(120) : 'LPMEMORYSTATUSEX' の宣言を確認してください。

typedef struct _MEMORYSTATUSEX {
    DWORD dwLength;
    DWORD dwMemoryLoad;
    DWORDLONG ullTotalPhys;
    DWORDLONG ullAvailPhys;
    DWORDLONG ullTotalPageFile;
    DWORDLONG ullAvailPageFile;
    DWORDLONG ullTotalVirtual;
    DWORDLONG ullAvailVirtual;
    DWORDLONG ullAvailExtendedVirtual;
} MEMORYSTATUSEX, *LPMEMORYSTATUSEX;

WINBASEAPI
BOOL
WINAPI
GlobalMemoryStatusEx(
_Out_  LPMEMORYSTATUSEX lpBuffer
    );

うーん、訳が分からない。
別におかしくないじゃないか!

WINBASEAPI
BOOL
WINAPI
GlobalMemoryStatusEx(
_Out_  void *lpBuffer
    );

こうしてごまかしたら通った…。

次、共有DLLで MFCプロジェクトを作った後、
mfc

スタティックに切り替えます。
mfc2

1>  stdafx.cpp
1>c:\program files (x86)\microsoft visual studio 12.0\vc\atlmfc\include\afxver_.h(77): fatal error C1189: #error :  Please use the /MD switch for _AFXDLL builds

なんで、 _AFXDLLが関係あるんだ…?

mfc3
と思ったら、なぜか継承してたでござる…。
プリプロセッサの無視に _AFXDLLを放り込んだら通ったでござる…。

|・ω・) 。o ( もう、バージョン上げなくていいから、ちゃんとデバッグしてよ! )

おすすめ

1件の返信

  1. Egtra より:

    _AFXDLLの件は、プロジェクトのプロパティの「構成プロパティ」の「全般」にある「MFCの使用」を「共有DLLでMFCを使う」から「スタティックライブラリでMFCを使用する」に変更したら良いのではないかと思います。これは、Visual Studio 2013に限らずずっと昔からこうなっています(少なくとも2005でもそうでした)。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です