一直没有找到单独的ADC驱动,偶然看到有网友说是和Touch放在一起了,
翻看"s3c2440a_touch.cpp" 一看,真是如此,好吧,也将就了,再详细看
里面的代码,不由得气炸了肺!
请看原文件的代码:
=======================================================
static DWORD WINAPI ADCThreadProc(LPVOID lpParameter)
{
HANDLE DriverEvent = CreateEvent(NULL, FALSE, FALSE, L"ADC_EVENT_FROM_FRIENDLYARM");
if (DriverEvent == NULL) {
RETAILMSG(1, (L"Cannot alloc object for ADC driver"));
return 0;
}
for (;;) {
DWORD ret = WaitForSingleObject(DriverEvent, INFINITE);
if (ret != WAIT_OBJECT_0) {
RETAILMSG(1, (L"Unknown error\n"));
return 0;
}
HWND Wnd = FindWindow(L"Dialog", L"ADC Testing");
if (Wnd == NULL) {
RETAILMSG(TS_DBGON, (L"Cannot Find the Window\n"));
} else {
DWORD ADCValue = (DWORD)GetADCValue();
COPYDATASTRUCT cp;
cp.dwData = ADCValue;
cp.cbData = 0;
cp.lpData = NULL;
SendMessage(Wnd, WM_COPYDATA, NULL, (LPARAM)(&cp));
}
}
return 0;
}
=======================================================
产生 "ADC_EVENT_FROM_FRIENDLYARM" 也可以忍受,
但:
HWND Wnd = FindWindow(L"Dialog", L"ADC Testing");
if (Wnd == NULL) {
RETAILMSG(TS_DBGON, (L"Cannot Find the Window\n"));
} else {
DWORD ADCValue = (DWORD)GetADCValue();
-----------------------------------------------------------------------------------------
很恶心,存心不想让使用者弄自己的程序!