假設GetLastError(和變體)是每個線程還是每個進程?如果它是每個進程的問題在多線程應用程序中顯而易見,因爲無法保證在失敗的調用和GetLastError之間沒有其他Win32調用。有時GetLastError的值很重要。正確處理多線程上下文中的GetLastError(及其他)
例如,如果使用IO完成端口,AcceptEx將返回FALSE(失敗)。 WSAGetLastError(類似於GetLastError)將返回ERROR_IO_PENDING來通知您它已掛起並且失敗不是由於其他原因導致的。問題是可能有數十個以太網呼叫正在運行並覆蓋此值。
這些調用是線程特定還是特定進程?如果過程具體,那麼你如何正確處理?
+1提及劉易斯卡羅爾。 – 2010-08-06 17:12:53
我必須失明,因爲我沒有在MSDN文檔中看到它,直到每個人都指出它。 – 2010-08-06 17:16:36
+1表示明顯。 – 2010-08-06 17:21:23