0

私が持っているのは、3 つのレイヤーで構成されるプロジェクトです。ベース レイヤーはネイティブ C++ スタティック ライブラリのセットであり、これらはグラフィックス、オーディオなどのゲーム エンジンのコア コンポーネントです。

中間層は、これらすべてをエンジン自体である別の静的ライブラリにグループ化します。この理由は、エンジンを配布用に実行可能ファイルにコンパイルするだけでなく、最上位レイヤーに含めることができるようにしたかったからです。

最上位層は、ゲーム コンテンツを迅速に作成するために設計された .net アプリケーションです。Studio を無料で配布し、engine.exe を商用目的で配布したいと考えています。したがって、エンジンをライブラリに作成したいのはなぜですか。

途中のどこかで、コンパイル段階でバグが発生しています。engine.exe は正常に動作しますが、以下を追加すると .net アプリケーションが壊れます。

#include <string>
using std::string;

プログラムはエラーなしでコンパイル段階を通過しますが、最初のブレークポイントに到達する前に爆発します。実際、私が知る限り、メイン関数に到達することさえありません。最適化するか、他の何かを行います。表示されるエラーは、デバッグ アサーション _CrtIsValidHeapPointer(pUserData) です。dbgheap.c の 1516 行にあります。それが問題ではないことはわかっていますが、誰かがその主張を認識して助けてくれることを願っています。

私の最善の策は、問題がライブラリのリンク方法とコンパイラの設定に関係していることです。別の設定を試しましたが、まだ問題を解決していません。誰かがこれについて何か経験を持っているなら、もっと知る必要があるなら、それは素晴らしいことです.

4

1 に答える 1