DXライブラリの力を借りて、3Dアクションゲームを作ろうとしているものです。製作中に思わぬ壁にぶつかってしまったので、アドバイスのほどをお願いします。初期化をしているときにロード画面を表示させたいので初期化部分の処理をマルチスレッドを使って、裏でさせようと思います。形としては、はじめに「裏で初期化を受け持つスレッド」を呼び出しておき、メインのループではメッセージの処理とロード画面の描画を行い、初期化が終わるのを待つ。初期化が終わると同時に、ゲームが開始される、といった形です。大きいステージモデルを読み込む時に、プログラムが異常終了を起こしてしまいます。いうのも、小さいモデルで初期化を試したところ、ちゃんとゲーム開始まで実行できるのです。初期化を(裏でなく)メインの処理に組み込んだところ、大きいモデルでも読み込むことができました。裏で行う初期化に対してメモリの容量に制限があるのかとおもうのですが、なにか解決の方法はありますでしょうか。ご指導よろしくお願いします。ちなみにスレッドの呼び出しには_beginthreadex関数を使い、きちんと呼び出し、終了はできているのでそのあたりの落ち度はないのかと思います。普通に、レースコンディション起こしてませんか?大きいデータということですから、全部読み込みきる前にメインスレッドが走ってるような気がするのですが。9年前DXライブラリはスレッドセーフではありませんので、たぶんこちらで問題を起こしている可能性が高いです。スプライト系は、スレッドでメモリ読み込みだけしておいて後で展開って手段が取れるのですがモデル系はなにか良い手があるかなぁ。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。スプライト系は、スレッドでメモリ読み込みだけしておいて後で展開って手段が取れるのですがモデル系はなにか良い手があるかなぁ。モデル系も、「スレッドでメモリ読み込みだけしておいて後で展開」は可能ですよ。9年前へろりさん返信ありがとうございます。初期化の途中にメインスレッドが動くのは試行錯誤の中で確認しました。先走っているのではないと思います。以下のMode_Flagがそれで、初期化後に代入されるので判断しています。0;}この場合、処理がフラグを変えるに至らずに初期化中に異常終了が出てしまうのです。)が原因らしいと突き止めましたが、モデルのサイズがある程度大きい場合に終了してしまうようなのです。ちなみにメインスレッドで同じ初期化をしたところ大きいモデルでも異常終了しませんでした。解決方法はありますでしょうかご指導お願いします。スプライト系は、スレッドでメモリ読み込みだけしておいて後で展開って手段が取れるのですがモデル系はなにか良い手があるかなぁ。モデル系も、「スレッドでメモリ読み込みだけしておいて後で展開」は可能ですよ。h2so5さん、DXライブラリでの実現方法を書いて頂けると助かるのですが・・・。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。いう隠し関数が存在します。順番の整合性に問題無いとするとちょっと分かりませんね。等で、初期化スレッドの終了を待った場合はどうなりますか。9年前h2so5さん、もう一つだけ。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。順番の整合性に問題無いとするとちょっと分かりませんね。等で、初期化スレッドの終了を待った場合はどうなりますか。やってみたら確かにできたのですが、ロード画面ではアニメーションさせたいのでちょっと不向きのような気もします。(--;)この時はサイズが大きいステージモデルでもできたので、やはりスレッドは待たないといけないのでしょうか。h2so5さんの隠し関数についてもやってみようと思います。ロード画面ではアニメーションさせたいのでちょっと不向きのような気もします。ロード画面ではアニメーションさせたいのでちょっと不向きのような気もします。(--;)WaitForSingleObjectを待機時間0でポーリングしてもですか?完全に自分の知識不足です。ポーリングという言葉も知りませんでした。0);このようにやってみました。始めと同じように異常終了してしまいました。(;_;)待機時間を1秒ほどに延ばせば大丈夫でしたが、ロード画面がかくかくしてしまいます。GetExitCodeThreadを使っても同様です。&dwExitCode);最後に、試しにWaitKey()を使ってロード画面を止め、少し経ってから進めたところ、WaitForSingleObjectを使わなくても上手く進みました。メイン処理が少し待っている必要があるみたいです。アドバイスありがとうございました。副管理人さんh2so5さんアドバイスありがとうございました。おっしゃっていたことについてできました。おっしゃっていたようにスレッドセーフではなかったことが原因だったようです。書き込んでくださったMV1LoadModelFromMem関数を使用して3Dモデルを作成すると、テクスチャが貼られていないまっさらなステージになってしまいました。書き込んでくださったテストプログラムではちゃんと貼ってある状態でしたので、これは自分で解決したいと思います。協力してくださった方々、本当にありがとうございました。これで、この質問は「解決」とさせていただきます。ミクプラは自由にリンクできます。