○ActiveX.DLL スレッドをつかってイベントを発生させます

▽1秒おきにイベントを発生するタイマーを作成してみます。
もちろんVBなどで参照すればタイマーコントロールと同じようにイベントが発生して使用できます。

■方法1------------------------------------------------------------------

void Thread1(LPARAM a){
	while(TRUE){
		((Cclass1*)a)->event();//イベントメソッドを指定
		Sleep(1000);
	}
}

スタートメソッドのようなものを作って

_beginthread((void(*)(void*))Thread1 ,0,this);//スレッドのスタート


■方法2------------------------------------------------------------------

DWORD WINAPI Thread1(LPVOID a){
	while(TRUE){
		((Cclass1*)a)->event();//イベントメソッドを指定
		Sleep(1000);
	}
	return 0;
}

STDMETHODIMP Cclass1::start(void)
{
	CreateThread(NULL, 0,Thread1,(LPVOID)this, 0, NULL);//Thread1を開始
	return S_OK;
}


▲トップページ > Windows と C++