掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
_bstr_tをDLLの引数にして使用するには? (ID:66641)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
こんばんは。 C++をはじめて間もない者です。 _bstr_tの使い方でどツボにはまってしまいましたので、質問させて頂きます。 XMLファイルのアクセスを行うクラスを「.lib」で作成し、 それを使用してXMLファイルへのアクセスを行っていました。 無事に取得出来ることを確認し、この.libの処理を.dllへ移行して使用するようにしたのですが、ここで問題が発生いたしました。 XMLより文字列を取得する関数で引数に_bstr_tを使用しているのですが、 なぜか複数回(2回目以降)呼ぶと以下のようなエラーが発生するようになってしまいました。(debugモードにて確認) 何が原因かがつかめず先に進めなくなってしまいました。 そもそも、_bstr_tの使い方が間違っている可能性もあると思いますが、 よろしくご教授お願いいたします。 ------------------------------------------------------- Debug Assertion Failed! 〜省略〜 File: dbgheap.c Line: 1011 Expression: _CrtIsValidHeapPointer(pUserData) ------------------------------------------------------- 以下、テスト的に作成したプログラムです。 DLL側: DWORD CTest::GetBSTR(_bstr_t &bstrVal) { bstrVal.operator =("Test"); return 0; } 呼び出し側:コンソールアプリ int main(int argc, char* argv[]) { CTest test; _bstr_t bstrVal; for(int i=1; i < 100;i++){ test.GetBSTR(bstrVal); printf("%d BSTR=[%s]\n",i,(char*)bstrVal); } printf("end\n"); return 0; }
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.