Releaseモード時のクラスのCStringメンバ変数への代入について – プログラミング – Home

Releaseモード時のクラスのCSt...
 
通知
すべてクリア

[解決済] Releaseモード時のクラスのCStringメンバ変数への代入について


riku
 riku
(@riku)
ゲスト
結合: 22年前
投稿: 6
Topic starter  

CStringをメンバ変数に持つクラスをDLLにて作成しました。
これを呼び出す際、CStringのメンバ変数へCStringの変数を
代入してからクラスを実行するのですが、DLLをDebugモードで
作成した時は何ともないのですが、Releaseモードで作成した時、
その代入でエラーとなり落ちてしまいます。
「Debug Assertion Failed!・・・Expression: _CrtIsValidHeapPointer(pUserData)」
とエラーダイアログが出力されます。

CCLASS0:親クラス
CCLASS1:子クラス

class AFX_EXT_CLASS CClASS1 : public CCLASS0
{
public:
ULONG lAbc;
CString strAbc;



}

というクラスがあった時、クラスを呼び出すexeで

CCLASS1 Class1;
ULONG lCba = 1234;
CString strCba = abc;

Class1.lAbc = lCba; //これは問題ない
Class1.strCba = strCba; //この時落ちてしまう

となってしまいます。Releaseモード作成時に何か特別なオプションを
つける必要があるのでしょうか?
ご存知の方、御教授お願いいたします。


引用未解決
トピックタグ
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 23年前
投稿: 1301
 

...release-modeなのになぜ Debug Assertion Failed!... なんでしょ?
リンクするライブラリとかに不整合があるんじゃないかと...


返信引用
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

DebugとReleaseでメモリ確保の方式が違いますので、
EXEとDLLでDebugとReleaseを混在させると正しく動作しません。


返信引用
riku
 riku
(@riku)
ゲスト
結合: 22年前
投稿: 6
Topic starter  

ご指摘の通りでした。ありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました