Saturday, June 27, 2020

I need to remove extra feature I installed on SQL 2019. it is too big.

  1. QuickQuestion: How to uninstall a SQL Server feature?
  2. it works.


Friday, June 12, 2020

MFC / ClassWizard / AppWizard Frequently Asked Questions (FAQ)

#if _MSC_VER > 1000: why?

#if _MSC_VER > 1000: why?

The predefined macro _MSC_VER indicates the major and minor version numbers of the Visual C++ compiler. The macro's value is an integer literal in which the last two digits indicate the minor version number and the preceding digits indicate the major version number.

I got another error when I compiled a legacy project:

Error C1189 #error: MFC does not support WINVER less than 0x0501. Please change the definition of WINVER in your project properties or precompiled header. MsgMapdemo c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.16.27023\atlmfc\include\afxv_w32.h 40

  1. Microsoft Visual C++
  2. MSC 1.0 _MSC_VER == 100
  3. MSC 2.0 _MSC_VER == 200
  4. MSC 3.0 _MSC_VER == 300 MSC 4.0 _MSC_VER == 400 MSC 5.0 _MSC_VER == 500 MSC 6.0 _MSC_VER == 600 MSC 7.0 _MSC_VER == 700 MSVC++ 1.0 _MSC_VER == 800 MSVC++ 2.0 _MSC_VER == 900 MSVC++ 4.0 _MSC_VER == 1000 (Developer Studio 4.0) MSVC++ 4.2 _MSC_VER == 1020 (Developer Studio 4.2) MSVC++ 5.0 _MSC_VER == 1100 (Visual Studio 97 version 5.0) MSVC++ 6.0 _MSC_VER == 1200 (Visual Studio 6.0 version 6.0) MSVC++ 7.0 _MSC_VER == 1300 (Visual Studio .NET 2002 version 7.0) MSVC++ 7.1 _MSC_VER == 1310 (Visual Studio .NET 2003 version 7.1) MSVC++ 8.0 _MSC_VER == 1400 (Visual Studio 2005 version 8.0) MSVC++ 9.0 _MSC_VER == 1500 (Visual Studio 2008 version 9.0) MSVC++ 10.0 _MSC_VER == 1600 (Visual Studio 2010 version 10.0) MSVC++ 11.0 _MSC_VER == 1700 (Visual Studio 2012 version 11.0) MSVC++ 12.0 _MSC_VER == 1800 (Visual Studio 2013 version 12.0) MSVC++ 14.0 _MSC_VER == 1900 (Visual Studio 2015 version 14.0) MSVC++ 14.1 _MSC_VER == 1910 (Visual Studio 2017 version 15.0) MSVC++ 14.11 _MSC_VER == 1911 (Visual Studio 2017 version 15.3) MSVC++ 14.12 _MSC_VER == 1912 (Visual Studio 2017 version 15.5) MSVC++ 14.13 _MSC_VER == 1913 (Visual Studio 2017 version 15.6) MSVC++ 14.14 _MSC_VER == 1914 (Visual Studio 2017 version 15.7) MSVC++ 14.15 _MSC_VER == 1915 (Visual Studio 2017 version 15.8) MSVC++ 14.16 _MSC_VER == 1916 (Visual Studio 2017 version 15.9) MSVC++ 14.2 _MSC_VER == 1920 (Visual Studio 2019 Version 16.0) MSVC++ 14.21 _MSC_VER == 1921 (Visual Studio 2019 Version 16.1) MSVC++ 14.22 _MSC_VER == 1922 (Visual Studio 2019 Version 16.2) MSVC++ 14.23 _MSC_VER == 1923 (Visual Studio 2019 Version 16.3) MSVC++ 14.24 _MSC_VER == 1924 (Visual Studio 2019 Version 16.4) MSVC++ 14.25 _MSC_VER == 1925 (Visual Studio 2019 Version 16.5) MSVC++ 14.26 _MSC_VER == 1926 (Visual Studio 2019 Version 16.6)
  5. C++ compiler support
  6. List of MSVC features with the respective version?

  7. MFC does not support WINVER less than 0x0501
  8. Error on Visual Studio 2017/Windows 2012 - MFC does not support WINVER less than 0x0501
  9. Update WINVER and _WIN32_WINNT
  10. To modify the macros, in a header file (for example, in targetver.h, which is included by some project templates that target Windows), add the following lines.

    tested: it is a good solution.

    #define WINVER 0x0A00
    #define _WIN32_WINNT 0x0A00

  11. MFC does not support WINVER less than 0x0501.
  12. Error 1 error C1189: #error : MFC does not support WINVER less than 0x0501. Please change the defi
  13. MFC does not support WINVER less than 0x0501
  14. This file requires _WIN32_WINNT to be #defined at least to 0x0403. Value 0x0501 or higher is recommended
  15. Visual C++: module unsafe for SAFESEH image, unable to generate SAFESEH image
  16. If you work in the Visual Studio Editor, you can right-click on your DLL project, go to Properties > Linker > Advanced and set “image has safe exception handlers” to No.


IMPLEMENT_DYNCREATE macro

IMPLEMENT_DYNCREATE macro in Visual C++

it is paired with DECLARE_DYNCREATE.

  1. Run-Time Object Model Services
  2. Ivor Horton's Beginning Visual C++ 2005

How can I display the .chm file for all controls while Pressing F1 key in MFC Application?

Error LNK2026 module unsafe for SAFESEH image.

continue HTML help project conversion re-building, I got this error:

Error LNK2026 module unsafe for SAFESEH image.

  1. Visual C++: module unsafe for SAFESEH image, unable to generate SAFESEH image
  2. If you work in the Visual Studio Editor, you can right-click on your DLL project, go to Properties > Linker > Advanced and set “image has safe exception handlers” to No.

  3. Error lnk2026: module unsafe for safeseh image
  4. /SAFESEH (Image has Safe Exception Handlers)
  5. [Bugs] error LNK2026: Module is not safe for SAFESEH image

new HTML help API errors.....

when I compiled converted MFC demo on HTML API calling functions, I got this error:

Error C2660 'CWinApp::HtmlHelpA': function does not take 4 arguments hh4mfc d:\html_help_tutorials\hh4mfc\hh4mfc.cpp

  1. Error C2660 'CWinApp::HtmlHelpA': function does not take 4 arguments
  2. HtmlHelp Errors in VS 2005
  3. You need to write:

    ::HtmlHelp(m_pMainWnd->m_hWnd, m_pszHelpFilePath, HH_HELP_CONTEXT, dwData);

    to get the global HtmlHelp() rather than CWinApp::HtmlHelp().


Error D8016: '/ZI' and '/Gy' command-line options are incompatible

when I build an old project in Visual C++ 6.0, the project is converted to VS 2017. after build it, it gives one error:

Error D8016 '/ZI' and '/Gy-' command-line options are incompatible hh4mfc D:\HTML_Help_tutorials\hh4mfc\cl 1

  1. Visual Studio error D8016: '/ZI' and '/Gy' command-line options are incompatible
  2. #visual studio # Error D8016 '/ZI' and '/Gy-' command-line options are incompatible
  3. Error_D8016_'/ZI' and '/Gy-' command-line options are incompatible
  4. #visual studio编译# Error D8016 '/ZI' and '/Gy-' command-line options are incompatible