OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

メモリ解放について

  • すぐに回答を!
  • 質問No.137598
  • 閲覧数1179
  • ありがとう数3
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 45% (5/11)

<VC++で作成したDLLをVBで呼ぶ処理>
DLL側でメモリ割り当てを行ったあと、VB側でメモリ解放を
したいのですが、方法がわかりません。
教えてください。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全3件)

  • 回答No.1
レベル8

ベストアンサー率 51% (21/41)

VBの変数スコープの範囲で動的に廃棄しますので なにもしなくてよい 下記ATLの場合 sub vfHoge  dim sFunctonName as string  sFunctionName = oHoge.FunctionName endsub 'ここでsFunctonNameの領域開放 STDMETHODIMP CBSFDevKit::get_FunctionName ...続きを読む
VBの変数スコープの範囲で動的に廃棄しますので
なにもしなくてよい

下記ATLの場合
sub vfHoge
 dim sFunctonName as string
 sFunctionName = oHoge.FunctionName
endsub 'ここでsFunctonNameの領域開放

STDMETHODIMP CBSFDevKit::get_FunctionName(BSTR *pVal)
{
 *pVal = ::SysAllocString(m_sFunctionName);
 return S_OK;
}
補足コメント
gaburi

お礼率 45% (5/11)

VBもVC++も初心者なので見当違いだったらすみません。

VC++のDLL側で割り当てたメモリもVB側から参照しただけで
解放されるのでしょうか?
VC++でいうfreeのような事はしなくていいのでしょうか?

確認のためお願いします。
投稿日時 - 2001-09-18 21:25:22
  • 回答No.2
レベル12

ベストアンサー率 45% (210/459)

こんにちは。itohhといいます。 DLL側で動的にメモリを割り当てた場合は、解放しなければいけません。 (メモリリークしてそのうち再起動しなければいけなくなります。) ご自分でDLLを作成しているのでしょうか? それならば、DLLで解放する関数を作成しては如何ですか? ...続きを読む
こんにちは。itohhといいます。

DLL側で動的にメモリを割り当てた場合は、解放しなければいけません。
(メモリリークしてそのうち再起動しなければいけなくなります。)

ご自分でDLLを作成しているのでしょうか?
それならば、DLLで解放する関数を作成しては如何ですか?
補足コメント
gaburi

お礼率 45% (5/11)

DLL側でmallocなどでメモリ割り当てをした場合、
VB側ではメモリ解放はできないという事でよろしいのでしょうか?
投稿日時 - 2001-09-19 10:07:34
  • 回答No.3
レベル12

ベストアンサー率 45% (210/459)

こんにちは。itohhといいます。 mallocで確保されたエリアは開放できないと思います。 なぜなら、VBからでは、Free関数が直接呼べないからです。 もし、どうしてもVBで解放したいのであれば、malloc関数の代わりに GlobalAlloc関数を使用してください。 そのときのハンドルを返すようにすることによってGlobalFree関数(解放する関数) を使用することが出来るよ ...続きを読む
こんにちは。itohhといいます。

mallocで確保されたエリアは開放できないと思います。
なぜなら、VBからでは、Free関数が直接呼べないからです。

もし、どうしてもVBで解放したいのであれば、malloc関数の代わりに
GlobalAlloc関数を使用してください。
そのときのハンドルを返すようにすることによってGlobalFree関数(解放する関数)
を使用することが出来るようになります。

関数の対応は、
malloc関数 -> GlobalAlloc関数(およびGlobalLock関数)
Free関数  -> GlobalFree関数(およびGlobalUnlock関数)
です。
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ