| imho.ws |
![]() |
|
|
|
# 1 |
|
Junior Member
Регистрация: 22.05.2003
Сообщения: 170
![]() |
Помогите с дом заданием
Есть вот такая функц
Код:
#include <conio.h>
#include <iostream>
#include <string>
using namespace std;
DWORD WINAPI MonitoringThread(void * pParam);
static bool g_bGoOn = true;
int main(int argc, char* argv[])
{
cout << "Link zum monitoring eingeben : ";
string sDir;
cin >> sDir;
DWORD dwID;
::CreateThread(NULL, 0, MonitoringThread, (void *)sDir.c_str(), 0, &dwID);
char ch;
while (ch = getch())
{
if ('q' == ch || 'Q' == ch)
break;
}
g_bGoOn = false;
Sleep(300);
return 0;
}
DWORD WINAPI MonitoringThread(void * pParam)
{
const char * pszDir = (char *) pParam;
HANDLE hMonitor = ::FindFirstChangeNotification(pszDir, false, FILE_NOTIFY_CHANGE_LAST_WRITE);
//everything worked wrong
if (INVALID_HANDLE_VALUE == hMonitor)
ExitProcess(-1);
///
cout << "Started monitoring " << pszDir << " directory." << endl;
DWORD dw;
while (g_bGoOn)
{
dw = ::WaitForSingleObject(hMonitor, 1000);
switch (dw)
{
case WAIT_TIMEOUT:
//time out and nothing has changed
break;
case WAIT_OBJECT_0:
//we have changes in the monitored directory
::FindNextChangeNotification(hMonitor);
cout << "In the monitored directory change(s) have occured!" << endl;
break;
default:
//means there's some other error
cout << "Error has occured. Monitoring has stopped. Press 'q' to quit" <<
endl;
g_bGoOn = false;
break;
}
}
//close the search
::FindCloseChangeNotification(hMonitor);
return 0;
}
Спасибо |
|
|
|
|
# 3 |
|
Junior Member
Регистрация: 09.12.2003
Адрес: Москва
Сообщения: 62
![]() |
угу, создай Win32 (MFC) проект, портируй туда код. в твоем случае ничего сложного. кстати, как помню на RSDN.RU в форумах проскакивал подобный вопрос
__________________
не учите людей думать, они вам этого не простят... |
|
|
|
|
# 5 |
|
Advanced Member
Регистрация: 09.03.2004
Адрес: толстозадая Москва
Сообщения: 498
![]() ![]() ![]() ![]() |
2 ALL
Видимо он хочет, чтобы у него было скрещено консольное и оконное приложение.... ИМХО надо делать прогу изначально под виндовозную консоль через API AllocConsole. Тогда в такой проге можно пользовать виндовозные API, но не знаю все ли.... MessageBox уж точно вывести можно |
|
|