掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
DLLでmallocを使うとエラーがでます。 (ID:59553)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
はじめまして。 DLLでmallocを使うとエラー…というより強制リターン(表現がわかりません)されてしまいます。 class __declspec(dllexport) PAD_CLASS{ public: PAD_INFO_TYPE *Pad; int Init(void){ Pad=(PAD_INFO_TYPE *)malloc(sizeof(PAD_INFO_TYPE)); if(Pad==NULL)return 1; return 2; } }; ソースは重要と思われるところだけを書きました。 ちなみにPAD_INFO_TYPEは32バイトの構造体です。 このソースでInitを呼ぶと、通常は2が戻り、確保できなくても1が戻るはずなんですが、実際には0が戻ってきます。 調べたところ、mallocの次の命令にはプログラムが通ってないことがわかりました。 つまりmallocにより強制リターンされているのだと思います。 DLLにしたのがいけなかったのでしょうか。 あと、もう1つ気になったんですが、ソースを書き換えるたびに(なのかわかりませんが)Padの変数が確保されないことがたまに起きます。 mallocのエラーと関係あるのかな。 ちなみにリンクエラーはありませんでした。 よろしくお願いします。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.