Bài viết
Hỏi & Đáp
비동기 Callback방식 코드 질문
#include #include #include void CALLBACK FileIoComplete( DWORD dwError, DWORD dwTransfered, LPOVERLAPPED pO1){ printf("FileIoComplete() Callback - [%d 바이트] 쓰기 완료 -%s\n", dwTransfered, (char*)pO1->hEvent); //hEvent 멤버를 포인터로 전용했으므로 가리키는 대상 메모리를 해제한다. //이 메모리는 IoThreadFunction() 함수에서 동적 할당된 것들이다! delete[] pO1->hEvent; delete pO1; puts("FileIoComplete() - return \n");}DWORD WINAPI IoThreadFunction(LPVOID pParam) { char* pszBuffer = new char[16]; memset(pszBuffer, 0, sizeof(char) * 16); strcpy_s(pszBuffer, sizeof(char) * 16, "Hello IOCP"); LPOVERLAPPED pOverlapped = NULL; pOverlapped = new OVERLAPPED; memset(pOverlapped, 0, sizeof(OVERLAPPED)); pOverlapped->Offset = 1024 1024 5; pOverlapped->hEvent = pszBuffer; puts("IoThreadFunction() - 중첩된 쓰기 시도"); ::WriteFileEx((HANDLE)pParam, pszBuffer, sizeof(char) * 16, pOverlapped, FileIoComplete); // 비동기 쓰기 시도에 대해 ALERTABLE_WAIT 상태로 대기 for (; ::SleepEx(1, TRUE) != WAIT_IO_COMPLETION;); { //SleepEx를 호출한 WorkerThread가 ALERTABLE_WAIT 상태가 된다/ puts("IothreadFunction() - return "); } return 0;}int tmain(int argc, TCHAR* argv[]) { HANDLE hFile = ::CreateFile(_T("TestFile.txt"), GENERIC_WRITE, // 쓰기 모드 0, // 공유하지 않음 NULL, CREATE_ALWAYS, // 무조건 생성 FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, // 중첩된 쓰기 -> 비동기 쓰기 NULL); HANDLE hThread = NULL; DWORD dwThreadID = 0; dwThreadID=0; hThread = ::CreateThread( NULL, 0, IoThreadFunction, hFile, 0, &dwThreadID); //작업자 스레드가 종료될 때까지 기다린다. ::WaitForSingleObject(hThread,INFINITE); return 0;}이렇게 작성해서 해결했습니다.. 감사합니다.
- 1
- 4
- 354
Hỏi & Đáp
source file not compiled
원인을 찾은것 같습니다. input.txt를 dev에 넣고 수정한 후 F11을 누르면 읽어지지 않고 컴파일 되지 않아 dev안에 있는 것을 빼고 input.txt를 넣으면 F11 잘 먹힙니다. 이런 에러는 처음인데, 원인을 찾아서 좋네요.ㅎ
- 0
- 3
- 972
Hỏi & Đáp
source file not compiled
그냥 다른 폴더에 새로 만들어서 했습니다. AA.dev를 열어서 main.cpp를 F11눌러서 했는데, 전에 실행된 AA.exe파일로 그대로 되어 있고, main.exe도 이상했었고, 암튼 뭔가 오류가 났었습니다. 일단 새로운 dev프로젝트에서 할 예정인데,왜 위와 같은 오류가 생긴건가요? 추후 또 생길 수 있을것 같아서 질문에 대하여 꼭 답변 부탁드립니다
- 0
- 3
- 972
Hỏi & Đáp
source file not compiled
잘 실행되다가 주민등록번호 실행한 이후 부터 에러가 나네요... f9누르고 f10 누르면.,, Project is not compiled Compile now? -> source file not compiled. 되네요.(사진)
- 0
- 3
- 972




