掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
DLL上の例外をコピーした文字列をFreeLibraryにアクセスとエラーになる (ID:49520)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>あと自分の無知と質問の拙さ、他の人の回答を読み解く力のなさを棚に上げて どこを読み解いてませんか? 回答をきちんと読んだので、意図が伝わってないとわかったわけですが >です。例外オブジェクトを生成するときに使われるメモリマネージャはDLL側で、except...endの最後で解放するメモリマネージャは >EXE側、なんてあり得ないでしょ?じゃあどうするって? >DLL側のエクスポートされた関数では成功、失敗をクラス型、文字列型ではないいわゆるPODな型で返す(普通はIntegerで、0は失敗、非0は成功)。 >文字列を返したいなら、バッファを呼び出し元で確保して、そのポインタと有効な長さを渡し、呼び出し先でそこに文字列を格納する。 >要はWin32APIのような作りにする、ということです。 当然全部知ってるし メモリマネージャーが EXE と DLL が異なることも知ってる ただ単に on E: Exception do begin S := E.Message; end; で文字列コピーしてるのになんでエラーになるのかな? と思っただけで そしたらポインタコピーしてるだけだからだったって話で torさんの回答が全てなんですが・・・
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.