掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
DLLのスレットからイベントを発生させるとメモリエラー (ID:63232)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
VC6++のATL COM AppWizadから、イベントとスレット開始用メソッドを作成し 次のコードから、DLLを作成しました。(OSはWIN2000) // ts.cpp : Cts のインプリメンテーション #include "stdafx.h" #include "Test.h" #include "ts.h" #include <process.h> ////////////////////////////////////////////////////////////////////// // Cts void Thread(LPARAM a){ while(TRUE){ ((Cts*)a)->Fire_env();//イベントメソッド Sleep(1000); } } STDMETHODIMP Cts::start() { // TODO: この位置にインプリメント用のコードを追加してください _beginthread((void(*)(void*))Thread ,0,this); return S_OK; } このDLLをVB6で実行するとイベント発生時にメモリが"Read"にならないと言うエラーが発生します。 VB6は次の様なコードです。 Private WithEvents test As ts Private Sub Command1_Click() Text1.Text = 0 test.start End Sub Private Sub Form_Load() Set test = New ts End Sub Private Sub test_env() Text1.Text = Text1.Text + 1 End Sub VB6上から開始するとText1が+1づつカウントされます しかし、EXEにコンパイルして起動したプログラムではCommand1を押して メモリーエラーとなります。 動作可能な方法を教えてください。よろしくお願いします。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.