15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


OVERLAPPED I/O OPERATION IS IN PROGRESS !

Richard Rafaj -- rafaj@internet.sk
Tuesday, February 11, 1997

Environment: VC++ 4.2-flat; Win NT 4.0

Hi all,
I'm working on app which downloads HTML files from servers to my disk
(off-line browser).
My code looks like this:

1. pxxxSession = new CXXXSession(IDS_XXX, PRE_CONFIG_INTERNET_ACCESS);
where CXXXSession is inherited from CInternetSession base class
CXXXSession::CXXXSession(LPCTSTR pszAppName, int nMethod)
	: CInternetSession(pszAppName, 1, nMethod, NULL, NULL,
INTERNET_FLAG_ASYNC)
{
}

2. if (!AfxParseURL(m_URL, dwServiceType, strServerName, strObject, nPort)
||
                    dwServiceType != INTERNET_SERVICE_HTTP)
   {
			AfxMessageBox.....
   }
and 

3. pIFile = m_pxxxSession->OpenURL(m_URL, 1, 0, szHeaders,
lstrlen(szHeaders));

When I start my app, following message box periodically pops up:
"OVERLAPPED I/O OPERATION IS IN PROGRESS !"
What does it mean?

My output window looks like this:
Loaded symbols for 'C:\WINNT\system32\MFC42D.DLL'
Loaded symbols for 'C:\WINNT\system32\MSVCRTD.DLL'
Loaded symbols for 'C:\WINNT\system32\MFCO42D.DLL'
LDR: Automatic DLL Relocation in XXX.exe
LDR: Dll SHLWAPI.dll base bfe50000 relocated due to collision with
Dynamically Allocated Memory
Warning: throwing CInternetException for error 997
First-chance exception in XXX.exe (MFC42D.DLL): 0xE06D7363: Microsoft C++
Exception.
The thread 0x91 has exited with code 0 (0x0).
The thread 0x2A has exited with code 0 (0x0).
The thread 0xA4 has exited with code 0 (0x0).
The thread 0x93 has exited with code 0 (0x0).
The thread 0xAC has exited with code 0 (0x0).
The program 'E:\Work\XXX\Debug\XXX.exe' has exited with code 0 (0x0).

Thanx, Richard
rafaj@internet.sk




Mike Blaszczak -- mikeblas@nwlink.com
Wednesday, February 12, 1997

At 12:46 2/11/97 +0100, Richard Rafaj wrote:
>Environment: VC++ 4.2-flat; Win NT 4.0

Please upgrade to MFC 4.2b.  MFC 4.2-flat works only against beta
versions of some components of the operating system and is broken
aginst 

>My code looks like this:
 [...]
>INTERNET_FLAG_ASYNC)

INTERNET_FLAG_ASYNC isn't supported by MFC.

>3. pIFile = m_pxxxSession->OpenURL(m_URL, 1, 0, szHeaders,
>lstrlen(szHeaders));
>
>When I start my app, following message box periodically pops up:
>"OVERLAPPED I/O OPERATION IS IN PROGRESS !"
>What does it mean?

It means two things:

1) You wouldn't benefit from asynchronous access, anyway.  Since you're
   creating the connection and then immediately using it, you'll block
   whether you use asynchronous access or not.

2) You've written code that's very poor.  You're not handling any
   exceptions that could be generated by MFC, and have wound up relying
   on MFC's backstop exception handler, which does what it can: it shows
   an error message based on the exception thrown in a message box.

I've answered this same question several times on the list.  You might want
to pick through the archives if you'd like to find more details about the
matter.


.B ekiM
http://www.nwlink.com/~mikeblas/
These words are my own. I do not speak on behalf of Microsoft.
           This performance was not lip-synched.





Become an MFC-L member | Вернуться в корень Архива |