Re: ダンプ・・・ ( No.1 ) |
- 名前:管理人 日時:2014/08/24 11:54
以下の MV1LoadModel のサンプルプログラムを実行してみましたが、載せて頂いたような
メモリのダンプは出力はされませんでした
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
int ModelHandle ;
ChangeWindowMode( TRUE ) ;
// DXライブラリの初期化
if( DxLib_Init() < 0 )
{
// エラーが発生したら直ちに終了
return -1 ;
}
// 3Dモデルの読み込み
ModelHandle = MV1LoadModel( "DxChara.x" ) ;
// 画面に映る位置に3Dモデルを移動
MV1SetPosition( ModelHandle, VGet( 320.0f, -300.0f, 600.0f ) ) ;
// 3Dモデルの描画
MV1DrawModel( ModelHandle ) ;
// キーの入力待ち
WaitKey() ;
// DXライブラリの後始末
DxLib_End() ;
// ソフトの終了
return 0 ;
}
上記プログラムでは XSystemさんの環境でも件のメモリのダンプが行われることなく終了しますでしょうか?
|
Re: ダンプ・・・ ( No.2 ) |
- 名前:XSystem 日時:2014/08/24 12:18
>>管理人さん
つかてるモデルを入れてみてテストしてみましたが
問題なく行われていることを確認しました。
しかし、なんでだろ・・・
どこかをミスしたのかな・・・
|
Re: ダンプ・・・ ( No.3 ) |
- 名前:管理人 日時:2014/08/27 02:15
一つ考えられるのはメモリ破壊( メモリの不正なアクセス )です
こちらの掲示板に載せられる程の行数のプログラムで件の現象を再現することは可能でしょうか?
|
Re: ダンプ・・・ ( No.4 ) |
- 名前:XSystem 日時:2014/08/27 06:15
簡単に調べた結果、とあるPMDを読み込むと壊れるようです。非同期読み込みを入れないと1行でログが出てきて非同期読み込みを入れるとろぐが 2行出るようです。
|
Re: ダンプ・・・ ( No.5 ) |
- 名前:管理人 日時:2014/08/28 00:41
『とあるPMD』を読み込むと短いプログラムでも現象を再現することが出来るのでしょうか?
あと、不都合が無ければ『とあるPMD』について詳しく教えて頂けないでしょうか?
もし無償で配布されているモデルでしたら手元で現象を再現することで問題を修正することができると思いますので
|
Re: ダンプ・・・ ( No.6 ) |
- 名前:XSystem 日時:2014/08/28 06:10
現象の確認ができなかったためメールにて送らせて頂きました。
|
Re: ダンプ・・・ ( No.7 ) |
- 名前:管理人 日時:2014/08/29 00:05
メールを拝見しました、再現用のファイルで私の環境でも再現しました、ありがとうございます
原因はメモリリークではなく非同期読み込みの MV1LoadModel と、通常の同期読み込みの MV1LoadModel が
同時に実行された結果、どちらの場合も使用するグローバルデータの初期化処理が2つ同時に実行されてしまい、
その中で行われているメモリの確保処理も2回行われてしまっていたというものでした
非同期と同期で同時にその処理が実行されそうになったときは後から実行しようとしたほうが待つように
することで修正できましたので、よろしければこちらの修正版をお試しください m(_ _;m
http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_DevCppTest.exe // Dev-C++ 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_MinGWTest.exe // MinGW 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibDotNet.zip // .NET用
http://homepage2.nifty.com/natupaji/DxLib/DxLibMakeTest.exe // ソース
(中身を既存のライブラリのファイルに上書きして、BCCをお使いの
場合は『再構築』を、VCをお使いの場合は『リビルド』を、
Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい)
|
Re: ダンプ・・・ ( No.8 ) |
- 名前:XSystem(解決) 日時:2014/08/29 06:01
>>管理人さん
現象が治りました。
対応のほどありがとうございました。
|