Приветы!
Что-то странное с этими DLL'ами
Итак, имеется DLL, в ней диалог.
Далее пишу:
MessageBox (_T("RegisterHotKey"));
nRet = RegisterHotKey(m_hWnd, ID_HOTKEY_L, 0, TRIGGER_L);
if (nRet == FALSE) MessageBox (_T("Can't RegisterHotKey"));
nRet = RegisterHotKey(m_hWnd, ID_HOTKEY_R, 0, TRIGGER_R);
if (nRet == FALSE) MessageBox (_T("Can't RegisterHotKey"));
Отлавливаю в PreTranslateMessage:
BOOL CScannerDll::PreTranslateMessage(MSG* pMsg)
{
switch (pMsg->message)
{
case WM_HOTKEY:
MessageBox (_T("WM_HOTKEY"));
switch(pMsg->wParam)
{
case ID_HOTKEY_L:
case ID_HOTKEY_R:
ReadBarCode();
return TRUE;
break;
}
break;
}
return CDialog::PreTranslateMessage(pMsg);
}
Так вот, если DLL скомпилирована в дебаг режиме, то все работает, а если в релизе, то появляется только один мессадж бокс — "RegisterHotKey".
К чему бы все это? И как это можно исправить?
Проблема решена: оказывается нельзя смешивать debug и release версии длл'ек и программы....
Скомпилировала все в release и все заработало... хотя странно все это