NQueen.cpp
上传用户:hncsjd
上传日期:2022-07-08
资源大小:3772k
文件大小:3k
源码类别:

其他智力游戏

开发平台:

Visual C++

  1. // NQueen.cpp : Defines the class behaviors for the application.
  2. //
  3. #include "stdafx.h"
  4. #include "NQueen.h"
  5. #include "NQueenDlg.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. /////////////////////////////////////////////////////////////////////////////
  12. // CNQueenApp
  13. BEGIN_MESSAGE_MAP(CNQueenApp, CWinApp)
  14. //{{AFX_MSG_MAP(CNQueenApp)
  15. // NOTE - the ClassWizard will add and remove mapping macros here.
  16. //    DO NOT EDIT what you see in these blocks of generated code!
  17. //}}AFX_MSG
  18. ON_COMMAND(ID_HELP, CWinApp::OnHelp)
  19. END_MESSAGE_MAP()
  20. /////////////////////////////////////////////////////////////////////////////
  21. // CNQueenApp construction
  22. CNQueenApp::CNQueenApp()
  23. {
  24. // TODO: add construction code here,
  25. // Place all significant initialization in InitInstance
  26. }
  27. /////////////////////////////////////////////////////////////////////////////
  28. // The one and only CNQueenApp object
  29. CNQueenApp theApp;
  30. /////////////////////////////////////////////////////////////////////////////
  31. // CNQueenApp initialization
  32. BOOL CNQueenApp::InitInstance()
  33. {
  34. AfxEnableControlContainer();
  35. // Standard initialization
  36. // If you are not using these features and wish to reduce the size
  37. //  of your final executable, you should remove from the following
  38. //  the specific initialization routines you do not need.
  39. #ifdef _AFXDLL
  40. Enable3dControls(); // Call this when using MFC in a shared DLL
  41. #else
  42. Enable3dControlsStatic(); // Call this when linking to MFC statically
  43. #endif
  44. //确保“应用程序只有一个实例运行”
  45. //(1) 采用信号量实现(m_pszExeName为CWinApp类的成员变量)
  46. /*HANDLE hSem = CreateSemaphore(NULL,1,1,m_pszExeName);
  47. if( GetLastError()==ERROR_ALREADY_EXISTS )
  48. {
  49. AfxMessageBox("此程序不允许副本运行!");//弹出对话框提示用户
  50. CloseHandle(hSem);
  51. return FALSE;
  52. }*/
  53. //(2) 采用互斥量实现
  54. HANDLE mutex = CreateMutex(NULL,FALSE,m_pszExeName);
  55. if( GetLastError()==ERROR_ALREADY_EXISTS )
  56. {
  57. AfxMessageBox("此程序不允许副本运行!");//弹出对话框提示用户
  58. CloseHandle(mutex);
  59. return FALSE;
  60. }
  61. CNQueenDlg dlg;
  62. m_pMainWnd = &dlg;
  63. int nResponse = dlg.DoModal();
  64. if (nResponse == IDOK)
  65. {
  66. // TODO: Place code here to handle when the dialog is
  67. //  dismissed with OK
  68. }
  69. else if (nResponse == IDCANCEL)
  70. {
  71. // TODO: Place code here to handle when the dialog is
  72. //  dismissed with Cancel
  73. }
  74. // Since the dialog has been closed, return FALSE so that we exit the
  75. //  application, rather than start the application's message pump.
  76. return FALSE;
  77. }