掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
処理を10秒でタイムアウトするには?? (ID:61939)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
Web上のソースを取りに行く処理を10秒でタイムアウトにしたいのですが、InternetSetOptionは使用できませんでした。マイクロソフトのページではWinInetを使用するか、スレッドの使用を推奨しているので、以下のURLを参考にしているのですが、うまく動きません。 http://support.microsoft.com/kb/224318/ スレッドの使い方がいまいち理解できないので、ご指導ねがいます。 よろしくお願いします。 <ソースコード> g_hOpen = 0; if ( !( g_hOpen = InternetOpen ( "TEST", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0 ) ) ) { printf("Error on InternetOpen: " ); return ; } HANDLE hThread; DWORD dwThreadID; threadParm.pHost = szHost; threadParm.pUser = szUser; threadParm.pPass = szPass; hThread = CreateThread(NULL,0,WorkerFunction,&threadParm,0,&dwThreadID); dwTimeout = 5000; if ( WaitForSingleObject ( hThread, dwTimeout ) == WAIT_TIMEOUT ) { printf( "Can not connect to server in "); if ( g_hOpen ) InternetCloseHandle ( g_hOpen ); WaitForSingleObject ( hThread, INFINITE ); printf( "Thread has exited") ; return ; } dwExitCode = 0; if ( !GetExitCodeThread( hThread, &dwExitCode ) ) { printf( "Error on GetExitCodeThread: "); return ; } CloseHandle (hThread); if ( dwExitCode ) return ; if ( !InternetOpenUrl ( g_hOpen, "http://yahoo.co.jp/", NULL,0,INTERNET_FLAG_RELOAD,0)) { printf( "Error on FtpGetFile: "); return ; } if ( g_hConnect ) InternetCloseHandle( g_hConnect ); if ( g_hOpen ) InternetCloseHandle( g_hOpen ); return ; } <エラー文> 1>thre.obj : error LNK2019: 未解決の外部シンボル __imp__InternetOpenUrlA@24 が関数 _main で参照されました。 1>thre.obj : error LNK2019: 未解決の外部シンボル __imp__InternetCloseHandle@4 が関数 _main で参照されました。 1>thre.obj : error LNK2019: 未解決の外部シンボル __imp__InternetOpenA@20 が関数 _main で参照されました。 1>thre.obj : error LNK2019: 未解決の外部シンボル __imp__InternetConnectA@32 が関数 "unsigned long __stdcall WorkerFunction(void *)" (?WorkerFunction@@YGKPAX@Z) で参照されました。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.