★お知らせ(2023/12/27)
いつもLive2D公式コミュニティをご利用いただき誠にありがとうございます。
本コミュニティは2023年12月27日 11:00をもって閉鎖いたしました。
今後の運営はすべて新Live2D公式クリエイターズフォーラムに移行します。
閉鎖に伴い、以下機能は利用不可となります。
・アカウントの新規作成
・トピック投稿、返信
たくさんのご利用誠にありがとうございました。

新Live2D公式クリエイターズフォーラムは以下バナーよりご利用いただけます。
Live2D公式クリエイターズフォーラム

なお、本コミュニティに投稿されたトピックはすべて残りますが、今後削除する可能性がございますので予めご了承ください。
閉鎖に関するお問い合わせにつきましてはLive2D公式クリエイターズフォーラムへご連絡ください。

DirectX Debugモード時にビルドエラー

編集済: 5月 2016 Cubism SDK 2.1
Releaseモードビルド時にはエラーは発生しませんが、Debugモードビルド時に
下記のエラーが発生します。
Debugモード時の設定に誤りがあるのかと思うのですが、
自分では原因が分からず質問させて頂きました。
原因が分かる方いましたら、ご教示のほど宜しくお願いします。

エラーログ抜粋(※全文は添付ファイル参照)
------------------------------------------
エラー 164 error C2059: 構文エラー : '定数' c:\live2d\include\memory\LDObject.h 29 1 SYSTEM
エラー 168 error C2090: 関数は配列を返せません。 c:\live2d\include\memory\LDObject.h 32 1 SYSTEM
エラー 165 error C2091: 関数は関数を返せません。 c:\live2d\include\memory\LDObject.h 29 1 SYSTEM
エラー 174 error C2556: 'void *(__cdecl *live2d::LDObject::operator new(void))(l2d_size_t,live2d::MemoryParam *)' : オーバーロード関数は、'void *(__cdecl *live2d::LDObject::operator new(void))(l2d_size_t)' と戻り値の型のみが異なります。 c:\live2d\include\memory\LDObject.h 40 1 SYSTEM
------------------------------------------

開発環境
------------------------------------------
Windows8.1
Visual Studio 2010 Professional SP1
C++
Directx9.0c SDK (Summer 2004)
Live2D Cubism SDK for DirectX Version 2.0.06_1

Debugモード時設定
文字セット:マルチバイト文字セットを使用する
ランタイムライブラリ:マルチスレッドデバッグ(/MTd)
追加の依存ファイル:live2d_directX_mtd.lib

プログラム内で下記をインクルードしています
Live2D.h
Live2DModelD3D.h
Live2DMotion.h
MotionQueueManager.h
UtSystem.h
------------------------------------------

コメント

  • 下記にDirectXの最新版(2.1.01_1)がありますので、最新でも同様に問題が起きるか確認頂いてよろしいでしょうか?

    http://sites.cybernoids.jp/cubism-sdk2/directx2-1
  • >satok 様
    ご回答ありがとうございます。

    ご提示の最新版でも同様の事象が発生することを確認しました。
  • すみません。自己解決しました。

    Live2D.hなどをインクルードする前に記載していた下記コードが原因でした。
    メモリリーク箇所を検出するための記載ですが、LDObject.hなどエラーが出ていた
    ファイルの「operator new」部分に影響していたようです。

    下記コードを記載する前にLive2D.hなどをインクルードすることで解決しました。
    お騒がせしました。

    ■問題のコード
    ---------------------------------
    #ifdef _DEBUG
    #ifndef DBG_NEW
    #define DBG_NEW new ( _NORMAL_BLOCK , __FILE__ , __LINE__ )
    #define new DBG_NEW
    #endif
    #endif
    ---------------------------------

    ■参考サイト様
    http://www.hiramine.com/programming/windows/specifymemoryleak.html
    http://d.hatena.ne.jp/mas-higa/20090209/1234189708
コメントするにはサインインまたは登録して下さい。