掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
DLL内部で動的に取得した変数を、実行モジュール側で開放する方法 (ID:70307)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
今まで、プロパテの"MFCの使用"を"共有 DLL で MFC を使う" を指定して作成を行っていましたが、 "スタティック ライブラリで MFC を使用する"に変更したところ。(他のPCに配布するため) DLL側のメソッドで戻り値が、動的に確保された変数、可変配列(vectorなど)を使用している箇所付近で、 "WindowsによってXXXXでブレークポイントが発生しました。ヒープが壊れたことが原因として考えられます。" とエラーが発生します。 調べてみたところ、 http://madia.world.coocan.jp/cgi-bin/Vcbbs/wwwlng.cgi?print+200401/04010024.txt http://msdn.microsoft.com/ja-jp/library/f22wcbea.aspx で、基本的に不可能みたいに書かれていました。 何らかの方法で、実現することはできないでしょうか? 他のPCへの配布もあるので、"MFCの使用"は"スタティック ライブラリで MFC を使用する"を使用したいと思います 開発環境はVisual Studio2008 MFCアプリになります。 簡単に書くと以下のようになります。 --DLL側-- vector<int> GetArray() { vector<int> aRet; aRet.push_back( 1 ); aRet.push_back( 2 ); return aRet; } --EXE側-- main(){ vector<int> aTest = GetArray() return 0; <==ここでエラーが発生する }
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.