同じ値の char 同士を比較したのに値が違う,と言われる。signed と unsigned を比較していた。
ILS2 DirectPlay のイベントスレッド,終了のためにイベントをもう 1 つ用意する。
while(1)
{
// イベントを待つ
HANDLE hHandles[2];
hHandles[0] = m_hDPEvent;
hHandles[1] = m_hDPKillEvent;
if(::WaitForMultipleObjects(2, hHandles, FALSE, INFINITE) == WAIT_OBJECT_0 + 1)
{
// 終了イベント
return;
}
else
{
処理
}
}
のようにするとスッキリする。
VB から VC++ DLL を使う。VC++ で,MFC 拡張 DLL を作成し,
"func.h"
#ifdef __cplusplus
extern "C" {
#endif
int APIENTRY func();
#ifdef __cplusplus
}
#endif
"func.cpp"
int APIENTRY func()
{
return 0;
}
で公開する関数を作成。この中からはクラスも呼び出せる。
次に def ファイル。
"library.def"
LIBRARY "DialUpCommon"
DESCRIPTION 'DialUpCommon Windows Dynamic Link Library'
EXPORTS
func=XXXXXXXX
XXXXXXXX の部分は内部名。@ がたくさん付いてるやつ。
VB 側
Private Declare Function func Lib "library.dll" () As Long
Private Sub Command1_Click()
func
End Sub
とする。その際,開発環境からは DLL をフルパスにするか,DLL をパスの通っている場所に置かなくてはダメだった。