作成中の DLL で XNA Math を使用すると問題が発生します。DLL 内にあり、エクスポートされるクラスがあります。XMVECTOR 型のメンバー変数があります。クラス コンストラクターで、XMVECTOR の初期化を試みます。読み取り場所 0x0000000000 からの読み取りでアクセス違反が発生しました
コードは次のように実行されます。
class DLLClass
{
public:
DLLClass(void);
~DLLClass(void);
protected:
XMVECTOR vect;
XMMATRIX matr;
}
DLLClass::DLLClass(void)
{
vect = XMLoadFloat3(&XMFLOAT3(0.0f, 0.0f, 0.0f)); //this is the line causing the access violation
}
このクラスは、エクスポートされる DLL 内にあることに注意してください。さらなる情報だけでこれが違いを生むかどうかはわかりません。
また、私がそれに取り組んでいる間、別の質問があります:
警告も表示されます: struct '_XMMATRIX' needs to have dll-interface to be used by clients of class 'DLLClass'
これは致命的ですか?そうでない場合、それは何を意味し、どうすればそれを取り除くことができますか? この DLLClass はエクスポートされ、DLLClass の「クライアント」はおそらく変数「matr」を使用することに注意してください。
どんな助けでも大歓迎です。
編集: 追加情報: コードを 1 行ずつデバッグしましたが、XMLloadFloat3 の戻り値が vect に割り当てられたときにエラーが発生したようです。