generateerror.cpp

来自「C/C++程序员实用大全 配套代码.rar」· C++ 代码 · 共 55 行

CPP
55
字号
#include <genstub.c>

#define OUR_ERROR 0x10000000

LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
   static UINT uClicks;
   static UINT uRow;
   switch (uMsg)
   {
         case WM_CREATE:
               uRow = 0;
               uClicks = 0;
               return DefWindowProc( hWnd, uMsg, wParam, lParam);
         case WM_DESTROY:
               PostQuitMessage( 0 );
               break;
         case WM_COMMAND:
               switch ( LOWORD( wParam ) )
               {
                     case IDM_TEST:
                     {
                           HANDLE hModule;
                           char szBuffer[128];
                           HDC hDC = GetDC(hWnd);
                           // Turn off the DLL not found error mode.
                           UINT uOldMode = SetErrorMode( SEM_NOOPENFILEERRORBOX );
                           if ( (hModule = LoadLibrary("GetLast.DLL")) )
                           {
                              // Get address of external function.
                              FARPROC lpfnSetErrorCondition;
                              lpfnSetErrorCondition =
                                    GetProcAddress(hModule, "SetTheErrorCondition");
                              // Call external function to change error code.
                              if (lpfnSetErrorCondition)
                                 (*lpfnSetErrorCondition) (OUR_ERROR + uClicks++);
                           }
                           TextOut( hDC, 0, 16 * uRow++, szBuffer,
                                    wsprintf(szBuffer,"Error code is: %X",
                                    GetLastError() ));
                           SetErrorMode( uOldMode );
                           ReleaseDC(hWnd, hDC);
                     }
                     break;
                     case IDM_EXIT:
                           DestroyWindow( hWnd );
                           break;
               }
               break;
         default:
               return (DefWindowProc(hWnd, uMsg, wParam, lParam));
   }
   return (NULL);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?