Saturday, October 30, 2021

WIN32 vs. _WIN32

_WIN32 vs. WIN32

  1. Predefined macros
  2. The Microsoft C/C++ compiler (MSVC) predefines certain preprocessor macros, depending on the language (C or C++), the compilation target, and the chosen compiler options.

    MSVC supports the predefined preprocessor macros required by the ANSI/ISO C99, C11, and C17 standards, and the ISO C++14 and C++17 standards. The implementation also supports several more Microsoft-specific preprocessor macros. Some macros are defined only for specific build environments or compiler options. Except where noted, the macros are defined throughout a translation unit as if they were specified as /D compiler option arguments. When defined, the macros are expanded to the specified values by the preprocessor before compilation. The predefined macros take no arguments and can't be redefined..

  3. What's the difference between the WIN32 and _WIN32 defines in C++
  4. I know that WIN32 denotes win32 compilation but what is _WIN32 used for?.

  5. QM BITES: UNDERSTAND WINDOWS OS IDENTIFICATION PREPROCESSOR MACROS
  6. There’s confusion between user-defined and predefined Windows 32/64-bit operating-system identification macros. Matthew Wilson shines light on the issue..

  7. Both _WIN32 and _WIN64 are defined when targeting 32-bit windows from 64-bit windows #1062
  8. Both _WIN32 and _WIN64 are defined when targeting 32-bit windows from 64-bit windows #1062.

  9. Option to remove _WIN32 define for Windows platform #1235
  10. This is a paragraphIn issue #185 Bob wrote:

    _WIN32 and MACH should be defined already on the relevant platforms, but if there are additional defines that you need to define, you can add them to the "defines" array in your c_cpp_properties.json file.

    We have some common code for windows and embedded systems. When developing firmware for embedded systems having _WIN32 defined in #ifdef branches causes some extra includes, which are not available and rises errors about missing headers. Is it possible to remove _WIN32 define?

    Suggestion: do not force _WIN32 define. Leave it as default for windows platform but add an option to remove it..

  11. Should I define both _WIN32 and _WIN64 in 64bit build?
  12. When we add a 64bit configuration from a 32bit project that has already existed, Visual Studio copies the 32bit configurations by default. VS even copies _WIN32 All my 64bit projects define also _WIN32 now, despite they(64bit PEs) never can run on 32bit Windows. It is very uncomfortable to me.

    I'd like to remove the _WIN32 if it doesn't have any problem. I'm not sure about that. Is it okay if I remove the _WIN32 definition?.

  13. WIN32 versus _WIN32
  14. n the many projects I have been involved in I see a very mixed bag. And more importantly, what is the right thing to do?.

  15. The difference between WIN32 and _WIN32
  16. The difference between WIN32 and _WIN32.

  17. What's the difference between the WIN32 and _WIN32 defines in C++
  18. I know that WIN32 denotes win32 compilation but what is _WIN32 used for?.

  19. This is a paragraph.

  20. This is a paragraph.

  21. This is a paragraph.

  22. This is a paragraph.

  23. This is a paragraph.

  24. This is a paragraph.

  25. This is a paragraph.

  26. This is a paragraph.

  27. This is a paragraph.

Case Study 7: another way to build Crypto++

Case Study 7: another way to build Crypto++

    Crypto Logon

  1. Building 64-bit Version of the crypto++ DLL
  2. This tip shows you how to compile crypto++ for 64-bit environment.

  3. Crypto++
  4. wikipedia site.

  5. Crypto++ Category:Sample
  6. code samples.

  7. Crypto++ :Log in
  8. I have registered.

  9. Recommended Books
  10. Recommended Books is a compilation of programming and security books that you might find helpful. Other related information can be found at the Consultants page and Related Links page.

    The Consultants page is a list of individuals and companies who are available to help with your projects. The Related Links page offers information like projects using Crypto++ and other similar libraries.

    First Video tutorial

  11. Compiling Crypto++ library into the Microsoft Visual C++ Environment + Running Sample program
  12. Link to the Blod Entry on Crypto++------http://programmingknowledgeblog.blogs... c++ - about encryption and decryption using Crypto++ library Compiling and Integrating Crypto++ into the Microsoft Visual C++ .c++ - How do I install Crypto++ in Visual Studio 2010 Windows 7. Running Sample program Example How to build C++ cryptographic library, Crypto++ - NuLL CryptoPP DLL How to build Crypto++ dynamically on Microsoft Windows and Visual C++? ... is that your are linking against different versions of the run-time libraries....Visual C++ Crypto++ Library 5.6.2 - a Free C++ Class Library of Cryptographic encryption.cryptopp - Re: How to use Crypto++ with Visual C++ 6.0 Searches related to how to compile and run crypto++ in visual c++.

    Crypto++ project compilation: MY Steps:

    Step 1. download version 5.6.2
    Step 2. open this file in Visual Studio 2019: cryptest.sln
    Step 3. from top menu:Build->Batch Build. select cryptolib win32 debug & release items. then build.
    we got 64 warning messages. it will generate win32 folder.

    Demo Project compilation:

    Step 0. Follow the example instructions to create aa console project.
    Step 1. copy the example into source file TestCrypto.cpp
    Step 2. set up header include file to D:\Cryptopp562 or a simple ..\ will work
    Step 3. set up linker --> Select the Input and in the Additional Dependency: Enter the cryptlib.lib
    Step 4. set up linker --> General --> Aditional Library Directories: Enter the D:\Cryptopp562\Win32\Output\Debug
    Step 5. go to Project-> properties-->C/C++-> Code Generation ->Runtime Library : select the option ‘Multi-threaded Debug (/MTd)’
    Step 6. add stdafx.h file with the foolowing line to remove compilation error:
    #define _CRT_SECURE_NO_WARNINGS

    After these steps, the test project succeeds.

  13. Compiling and Integrating Crypto++ into the Microsoft Visual C++ Environment + Running Sample program
  14. youtube video is with these instructions on Compiling and Integrating Crypto++ into the Microsoft Visual C++.

  15. AES in Cryptopp c++
  16. a good example for AES + Crypto++.

  17. How to Build C++ Cryptographic Library, Crypto++
  18. Crypto++ is an awesome free and open source C++ class library of cryptographic algorithms and schemes which fully supports 32-bit and 64-bit architectures for many major operating systems, including FreeBSD, Linux, Solaris, Windows, Mac OS X and iOS. Currently, Crypto++ officially supports the following compilers:

    1. MSVC 6.0 - 2010
    2. GCC 3.3 - 4.5
    In spite of the power that Crypto++ offers, building and using it can be a little bit tricky. In the following we will describe the process of building Crypto++ on both FreeBSD and Windows using the GCC, MinGW and VC++ compilers.

  19. Write Your Own Cross-Platform Cryptographic Library
  20. Now, we want to develop our own cross-platform cryptographic wrapper library around Crypto++. I’ve already uploaded the full source code to GitHub. You can find the link to the code on GitHub at the end of this article..

    a good hex to ascii converter::

    Second Video tutorial

  21. Compiling Crypto++ in Microsoft Visual Studio 2019/2017 (with Cryptopp-PEM)
  22. Step-by-step tutorial on how to use and compile Crypto++ with Cryptopp PEM Pack in Microsoft Visual Studio 2019 and 2017. The steps are just the same for both versions of MVS.

    Links used in the video:
    1. Cryptopp repo - https://github.com/weidai11/cryptopp
    2. Cryptopp-PEM repo - https://github.com/noloader/cryptopp-pem
    3. Cryptopp-PEM issue - https://github.com/noloader/cryptopp-...
    4. Cryptopp main wiki - https://www.cryptopp.com/wiki/Main_Page
    5. Cryptopp Visual Studio wiki - https://www.cryptopp.com/wiki/Visual_...
    6. Cryptopp PEM Pack wiki - https://www.cryptopp.com/wiki/PEM_Pack
  23. PEM Pack
  24. The PEM Pack is a partial implementation of message encryption which allows you to read and write PEM encoded keys and parameters, including encrypted private keys. The additional files include support for RSA, DSA, EC, ECDSA keys and Diffie-Hellman parameters. The pack includes five additional source files, a script to create test keys using OpenSSL, a C++ program to test reading and writing the keys, and a script to verify the keys written by Crypto++ using OpenSSL..

    Misc.

  25. Link errors using cryptopp on VS2012 static library, console application and clr program
  26. I have the following project structure on VS2012 C++:

    1. cryptopp: As downloaded and build from cryptopp project.
    2. AccessLib: A static library build using cryptopp functions.
    3. TestApp: A Win32 console application that uses AccessLib (and cryptolib indirectly)
    4. UserApp: A Windows interactive application with CLR support (/clr) that uses AccessLib (and cryptolib indirectly)
    Well, my first try was to make this solution work to build my console application and my windows application. BTW, cryptopp was build in a way described in manuals and this SO link. All tests from cryptopp project are running fine in the build environment.

  27. C++ static library and platform toolset compatibility
  28. I recently created a static C++ library in Visual Studio 2008. In this project i used some methods of the std::string class. Now i want to use this library in a Visual Studio 2013 project.

    The problem is: Both Visual Studio versions use different platform toolsets and the project will not compile because of linker errors like:

    Error 4 error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall std::basic_string,class std::allocator >::basic_string,class std::allocator >(void)" (__imp_??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ)
    Is there any way to make a library compatible with all platform toolsets and using some standard classes like std::string?.

  29. How do I install Crypto++ in Visual Studio 2010?
  30. I downloaded http://www.cryptopp.com/#download 5.6.1 and have no clue that to do at this point. I am a total noob and need good instructions. thanks.

    * MSVC-Specific Information * On Windows, Crypto++ can be compiled into 3 forms:

    1. 1)a static library including all algorithms,
    2. 2)a DLL with only FIPS Approved algorithms,
    3. and 3)a static library with only algorithms not in the DLL.

    (FIPS Approved means Approved according to the FIPS 140-2 standard.) The DLL may be used by itself, or it may be used together with the second form of the static library.

    MSVC project files are included to build all three forms, and sample applications using each of the three forms are also included.

    To compile Crypto++ with MSVC, open the "cryptest.dsw" (for MSVC 6 and MSVC .NET 2003) or "cryptest.sln" (for MSVC 2005 - 2010) workspace file and build one or more of the following projects:

    • cryptopp - This builds the DLL. Please note that if you wish to use Crypto++ as a FIPS validated module, you must use a pre-built DLL that has undergone the FIPS validation process instead of building your own.
    • dlltest - This builds a sample application that only uses the DLL.
    • cryptest Non-DLL-Import Configuration - This builds the full static library along with a full test driver.
    • cryptest DLL-Import Configuration - This builds a static library containing only algorithms not in the DLL, along with a full test driver that uses both the DLL and the static library.

    To use the Crypto++ DLL in your application, #include "dll.h" before including any other Crypto++ header files, and place the DLL in the same directory as your .exe file. dll.h includes the line #pragma comment(lib, "cryptopp") so you don't have to explicitly list the import library in your project settings.

    To use a static library form of Crypto++, make the "cryptlib" project a dependency of your application project, or specify it as an additional library to link with in your project settings. In either case you should check the compiler options to make sure that the library and your application are using the same C++ run-time libraries and calling conventions.

    If you have any questions feel free to ask and i'll update the anwser with my responses.

  31. Example of AES using Crypto++ [closed]
  32. I have been searching the Internet for good c++ AES code sample/tutorial that teaches the basics of the encryption technology and the use of the Library but so far I have had no luck getting decent material.

    good: Easy to understand (Just the basics for on the go study)..

    Answer: Official document of Crypto++ AES is a good start. And from my archive, a basic implementation of AES is as follows:

    Please refer here with more explanation, I recommend you first understand the algorithm and then try to understand each line step by step.

  33. How to choose an AES encryption mode (CBC ECB CTR OCB CFB)?
  34. Which of them are preferred in which circumstances?

    I'd like to see the list of evaluation crtieria for the various modes, and maybe a discussion of the applicability of each criterion.

    For example, I think one of the criteria is "size of the code" for encryption and decryption, which is important for micro-code embedded systems, like 802.11 network adapters. IF the code required to implement CBC is much smaller than that required for CTR (I don't know this is true, it's just an example), then I could understand why the mode with the smaller code would be preferred. But if I am writing an app that runs on a server, and the AES library I am using implements both CBC and CTR anyway, then this criterion is irrelevant.

    See what I mean by "list of evaluation criteria and applicability of each criterion" ??

  35. Example of AES using Crypto++ [closed]
  36. I have been searching the Internet for good c++ AES code sample/tutorial that teaches the basics of the encryption technology and the use of the Library but so far I have had no luck getting decent material.

    good: Easy to understand (Just the basics for on the go study)..

  37. This is a paragraph.

  38. This is a paragraph.

Friday, October 29, 2021

C/C++ good post collections: Calling Conventions Demystified

some tricky points and tips

  1. Calling Conventions Demystified
  2. Calling Conventions Demystified.

  3. Timers Tutorial
  4. A tutorial on different kinds of timers.

  5. How To Organize Template Source Code
  6. Different ways to organize source code in C++ template libraries.

  7. The Art of Maintenance Programming
  8. Some tips to make maintenance programming more enjoyable..

  9. Non-Member Functions in OOP
  10. How non-member functions fit into object oriented programming..

  11. This is a paragraph.

  12. This is a paragraph.

  13. This is a paragraph.

  14. This is a paragraph.

  15. This is a paragraph.

  16. This is a paragraph.

  17. This is a paragraph.

  18. This is a paragraph.

  19. This is a paragraph.

  20. This is a paragraph.

  21. This is a paragraph.

  22. This is a paragraph.

  23. This is a paragraph.

Thursday, October 28, 2021

fast computer

fast computer

  1. Titan X170-M - Intel 11th Gen Core i7 Series 8 Cores Mobile Workstation Laptop PC
  2. Titan X170-M - Intel 11th Gen Core i7 Series 8 Cores Mobile Workstation Laptop PC.

  3. This is a paragraph.

  4. This is a paragraph.

  5. This is a paragraph.

  6. This is a paragraph.

  7. This is a paragraph.

  8. This is a paragraph.

  9. This is a paragraph.

  10. This is a paragraph.

  11. This is a paragraph.

  12. This is a paragraph.

  13. This is a paragraph.

  14. This is a paragraph.

  15. This is a paragraph.

  16. This is a paragraph.

  17. This is a paragraph.

  18. This is a paragraph.

  19. This is a paragraph.

Tuesday, October 26, 2021

Windows defender

windows defender updates

  1. Manage the schedule for when protection updates should be downloaded and applied.

  2. SOLVED: How to Make Windows Defender to Update Automatically
  3. There are two ways to set Windows Defender (Security Essentials) to automatically update and the first is to set WINDOWS UPDATE to automatically install all updates. The other way is to create a new SCHEDULED TASK:.

  4. How do I set Windows Defender to update daily?
  5. This is a paragraphExpand the tree to Windows components > Microsoft Defender Antivirus > Signature Intelligence Updates and configure the following settings: Double-click the Specify the day of the week to check for security intelligence updates setting and set the option to Enabled. Enter the day of the week to check for updates. Source: https://ostoday.org/windows/how-do-i-set-windows-defender-to-update-daily.html.

  6. Automatic Windows Defender Updates with Manual Windows/Microsoft Updates.

  7. How to Update Windows Defender Automatically and Manually
  8. This is a paragraph.

  9. How to update Microsoft Defender Antivirus definitions on schedule
  10. Yes, you can update Microsoft Defender Antivirus using a custom schedule, and here's how on Windows 10.

  11. How to Schedule Microsoft Defender Signature Updates in Windows 10
  12. a good one::

    Microsoft Security (formerly Windows Defender) uses security intelligence definitions to find possible threats on the computer. Usually, Windows 10 automatically finds and downloads the most recent available definitions via the Windows Update section. However, if you want, you can create a custom schedule forcing Windows 10 to get the signature updates more often. This process becomes a necessity if you have either paused or disabled receiving the latest cumulative updates..

  13. Update Windows Defender even when Automatic Windows Updates is disabled in Windows 10
  14. Windows Defender will not update its definitions if Windows Updates is not set to Install updates automatically in Windows 11/10/8.1/8. If for some reason you have changed your settings and preferred to set any of the other three updating options, viz. Download updates but let me choose whether to install them, Check for updates but let me choose whether to download and install them or Never check for updates, your Windows Defender will not have the latest definitions, till such a time that you update them manually. This is because Windows Defender and Windows Update are both dependent on the Windows Updates services..

  15. Schedule Defender Signature Updates in Windows 10
  16. How to Schedule Signature Updates for Microsoft Defender Antivirus in Windows 10

  17. Windows Defender AV must be configured to check for definition updates daily.
  18. Windows Defender AV must be configured to check for definition updates daily.

  19. This is a paragraph.

  20. This is a paragraph.

  21. This is a paragraph.

  22. This is a paragraph.

  23. This is a paragraph.

  24. This is a paragraph.

  25. This is a paragraph.

  26. This is a paragraph.

  27. This is a paragraph.

static const int

static const int

  1. What does 'const static' mean in C and C++?
  2. const static int foo = 42;
    I saw this in some code here on StackOverflow and I couldn't figure out what it does. Then I saw some confused answers on other forums. My best guess is that it's used in C to hide the constant foo from other modules. Is this correct? If so, why would anyone use it in a C++ context where you can just make it private?

  3. This is a paragraph.

  4. This is a paragraph.

  5. This is a paragraph.

  6. This is a paragraph.

  7. This is a paragraph.

  8. This is a paragraph.

  9. This is a paragraph.

  10. This is a paragraph.

  11. This is a paragraph.

  12. This is a paragraph.

  13. This is a paragraph.

  14. This is a paragraph.

  15. This is a paragraph.

  16. This is a paragraph.

  17. This is a paragraph.

  18. This is a paragraph.

  19. This is a paragraph.

function & non-member function design rules

function design rules

  1. How Non-Member Functions Improve Encapsulation
  2. When it comes to encapsulation, sometimes less is more. I'll start with the punchline: If you're writing a function that can be implemented as either a member or as a non-friend non-member, you should prefer to implement it as a non-member function. That decision increases class encapsulation. When you think encapsulation, you should think non-member functions..

  3. Non-Member Functions in OOP
  4. How non-member functions fit into object oriented programming..

  5. This is a paragraph.

  6. This is a paragraph.

  7. This is a paragraph.

  8. This is a paragraph.

  9. This is a paragraph.

  10. This is a paragraph.

  11. This is a paragraph.

  12. This is a paragraph.

  13. This is a paragraph.

  14. This is a paragraph.

  15. This is a paragraph.

  16. This is a paragraph.

  17. This is a paragraph.

  18. This is a paragraph.

  19. This is a paragraph.

  20. This is a paragraph.

noexcept keyword research

noexcept keyword research

    Examples

  1. noexcept
  2. some great example to play around.

  3. Exceptions should not be thrown in "noexcept" functions
  4. noexcept is a specifier that can be applied to a function declaration to state whether or not this function might throw an exception.

    This specifier is a crucial information for the compiler as it enables it to perform automatic optimizations. It is also used by the noexcept operator, so that a developer can know whether an expression can throw, and adapt the code accordingly (for instance, to decide to move or copy an object).

    More Details

  5. When to Use noexcept And When to Not
  6. In C++ 11, a new keyword noexcept is introduced. Being a replacement of deprecated throw(), what is noexcept good for? When should it be used and when should be avoided?.

  7. C++ keywords: noexcept (since C++11)
  8. Usage

    1. noexcept operator
    2. noexcept specifier.

  9. noexcept specifier (since C++11)
  10. Specifies whether a function could throw exceptions...

  11. When should I really use noexcept?
  12. The noexcept keyword can be appropriately applied to many function signatures, but I am unsure as to when I should consider using it in practice. Based on what I have read so far, the last-minute addition of noexcept seems to address some important issues that arise when move constructors throw. However, I am still unable to provide satisfactory answers to some practical questions that led me to read more about noexcept in the first place..

  13. noexcept (C++)
  14. C++11: Specifies whether a function might throw exceptions..

  15. C++ Core Guidelines: The noexcept Specifier and Operator
  16. If you skim through the remaining rules to error handling, you often read the word noexcept. Before I write about the rules to error handling, I write first about the noexcept specifier and the noexcept operator in this post...

  17. 20.9 — Exception specifications and noexcept
  18. n C++, all functions are classified as either non-throwing (do not throw exceptions) or potentially throwing (may throw an exception)..

  19. noexcept specifier (since C++11)
  20. Specifies whether a function will throw exceptions or not..

  21. This is a paragraph.

  22. This is a paragraph.

  23. This is a paragraph.

  24. This is a paragraph.

  25. This is a paragraph.

  26. This is a paragraph.

  27. This is a paragraph.

  28. This is a paragraph.

  29. This is a paragraph.

Monday, October 25, 2021

Case Study 6: building OpenSSL on Windows

exercise:

    An Example

  1. OpenSSL Tour for Win32 Developer
  2. This article will aim to give you a brief and to point tutorial about DES modes , hash Functions , AES , RSA algorithms and example of their usage , using OpenSSL..

    Install Perl

  3. ActiveState - ActivePerl
  4. Why Download Perl From ActiveState? Perl.org refers to ActiveState as “the simplest way to install the latest version of Perl.” We have been programmers’ trusted provider of Windows, Linux, and macOS Perl distributions for more than 20 years. We offer the latest versions of a number of open source programming languages, including Perl, Python, and Tcl.

    We specialize in stable, secure, and easy-to-deploy Perl environments. Our universal package manager, the State Tool, replaces CPAN and PPM and allows you to build runtimes with packages or Perl modules from source code, reducing your exposure to vulnerabilities.

    With ActiveState, you can install Perl and the State Tool directly in the command line, or you can use a Windows installer for ActivePerl 5.28. We allow sign-up with GitHub and provide documentation on many Perl programming topics such as using Perl with html, Perl scripts, and more in our community forum...

  5. How to install & configure ActivePerl on a Windows server
  6. IMPORTANT: This article relates to AcitvePerl up to version 5.26. From ActivePerl 5.28 onwards, ActiveState sadly discontinued their PPM tool which allowed easy installation of additional modules. For assistance installing the latest ActivePerl and additional modules, please refer to the vendor's own documentation.. .

    Building OpenSSL

  7. Building OpenSSL for Visual Studio
  8. Building OpenSSL for Visual Studio on Windows is mostly straight-forward, but it has some quirks. I’ll document the results of my wrestling here so that future attempts will be less painful..

    What you need You need to install…

    1. Visual Studio 2010 (see comments for success stories with Visual Studio 2015 as well)
    2. ActivePerl or Strawberry Perl 1
    3. Latest version of OpenSSL source-code 2

  9. OpenSSL download -archived version
  10. Downloads Our development is maintained in a git repository, which is accessible over the network and cloned on GitHub, at https://github.com/openssl/openssl. Please familiarize yourself with the license..

  11. openssl/openssl on github
  12. most recent version of source code.

  13. openssl/openssl - Public
  14. This is a paragraph.

  15. Compilation and Installation
  16. The following page is a combination of the INSTALL file provided with the OpenSSL library and notes from the field. If you have questions about what you are doing or seeing, then you should consult INSTALL since it contains the commands and specifies the behavior by the development team.

    OpenSSL uses a custom build system to configure the library. Configuration will allow the library to set up the recursive makefiles from makefile.org. Once configured, you use make to build the library. You should avoid custom build systems because they often miss details, like each architecture and platform has a unique opensslconf.h and bn.h generated by Configure.

    You must use a C compiler to build the OpenSSL library. You cannot use a C++ compiler. Later, once the library is built, it is OK to create user programs with a C++ compiler. But the library proper must be built with a C compiler.

    There are two generations of build system. First is the build system used in OpenSSL 1.0.2 and below. The instructions below apply to it. Second is the build system for OpenSSL 1.1.0 and above. The instructions are similar, but not the same. For example, the second generation abandons the monolithic Configure and places individual configurations in the Configurations directory. Also, the second generation is more platform agnostic and uses templates to produce a final, top level build file (Makefile, descrip.mms, what have you).

    After you configure and build the library, you should always perform a make test to ensure the library performs as expected under its self tests. If you are building OpenSSL 1.1.0 and above, then you will also need PERL 5.10 or higher (see README.PERL for details).

  17. Compile OpenSSL from source
  18. When try to compile the source, please use the fresh/original source for each platform!.

  19. How to build OpenSSL on Windows with Visual Studio 2017?
  20. I am trying to use OpenSSL but I am stuck on the step of compiling. The OpenSSL project has very unfriendly (bad) documentation.

    Is there any actual help how to build the latest OpenSSL version on Windows with Visual Studio 2017?

    I didn't find any helpful information on the official OpenSSL site. Yes, there are a lot of posts on the Internet about OpenSSL compilation, but all of them are obsolete...

  21. openssl/INSTALL.md:: Build and Install
  22. This document describes installation on all supported operating systems (the Unix/Linux family, including macOS), OpenVMS, and Windows).

  23. Windows 10 x64 cannot link - missing OPENSSL_UplinkTable #1621
  24. Windows 10 x64 cannot link - missing OPENSSL_UplinkTable #1621

    New Methods for Visual Studio 2019

  25. Build + Use OpenSSL with Visual Studio 2019 or 2017 | Static & Shared | x32 & x64
  26. Looking to build OpenSSL to use in projects with Visual Studio 2019? Well, you can do it for free with the Community edition. It's completely free, it just takes time to compile. You can choose to use .dll files (Shared), or you can integrate into your program directly by using Static builds. ((Timestamps below))

    My scripts (Tutorial in the video -- 08:49 and 12:20 respectively): x64 Builds: https://tcno.co/TroubleChute/dl/?dl=x...
    x32 Builds: https://tcno.co/TroubleChute/dl/?dl=x...

    Downloads: Strawberry Perl: http://strawberryperl.com/
    NASM: https://www.nasm.us/pub/nasm/releaseb...
    OpenSSL GitHub: https://github.com/openssl/openssl/

    SHA Example used: https://stackoverflow.com/a/10632725

  27. OpenSSL: Build on Windows
  28. follow these steps compile openssl on Windows.

    1. Install the Visual Studio Community Edition , git and Strawberry Perl.
    2. nasm is needed for builing openssl. To get it, open Visual Studio and create a New Project “Console App Tags: C++, Windows, Console”. Simply store it to D:\temp and name it TempNASM. When finshed, right click the project and select Manage NuGet Packages. Search for nasm and install the latest version. You can find the executable at “D:\Temp\TempNASM\packages\nasm.2.10.07\tools”.
    3. To install Strawberry Perl download the latest 64Bit zip edition an extract it, for example, to D:\perl. Then execute the two batch files relocation.pl.bat and update_env.pl.bat. These batches adjust the internal path references and add perl to the search path.
    4. Depending on the Architecture for which you want to build openssl Reverse Phone Lookup , x64 or x86, open the “x64 Native Tools Command Prompt for VS 2019” or “x86 Native Tools Command Prompt for VS 2019” shell from start menu...

  29. Building and configuring OpenSSL in Visual Studio (MSBuild).
  30. go through these steps and see if it is still valid.

  31. Building and configuring OpenSSL in Visual Studio (MSBuild).
  32. Integrating third party tools and libraries into Visual Studio (MSBuild) configuration environment..

  33. Precompiled OpenSSL
  34. Precompiled OpenSSL.

    I compile many different versions of OpenSSL with MSVC. I have written a batch script to ease this process. To use it you basically need the source code, Cygwin and Microsoft Visual Studio. I use these builds to subsequently compile other libraries, e.g. Qt4 and Qt5. The main difference from the official release is that I patch the sources to allow compiling libraries with filenames that reflect the compile configuration, which makes it easier to use later. It is best to use the latest version always.

    Please note that the OpenSSL Project (http://www.openssl.org) is the only official source of OpenSSL.

    These builds are created for my own personal use, they are custom, unsupported and experimental and therefore you are utilizing them at your own risk. My builds are not endorsed by The OpenSSL Project in any way. I build these in the context of my own work and spare time, I do NOT charge any money, I do NOT make any money … and NO I do NOT accept any donations!

  35. Build freeGlut
  36. This is a paragraph.

  37. Binary distributions of OpenSSL static libraries
  38. The official source of OpenSSL software is the OpenSSL website. One can download OpenSSL source codes archives and compile them for a given platform. The compilation work can sometimes be quite tedious and may require a specific knowledge or tools, especially for exotic platforms.

  39. Win32/Win64 OpenSSL
  40. shining light

  41. 1 OpenSSL Command Line
  42. OpenSSL is the world’s most widely used implementation of the Transport Layer Security (TLS) protocol. At the core, it’s also a robust and a high-performing cryptographic library with support for a wide range of cryptographic primitives. In addition to the library code, OpenSSL provides a set of command-line tools that serve a variety of purposes, including support for common PKI operations and TLS testing..

  43. This is a paragraph.

  44. This is a paragraph.

Saturday, October 23, 2021

Case Study 5: Porting legacy Visual C++ projects

Case Study 5: Porting legacy Visual C++ projects

    Guide from Microsoft

  1. microsoft/VCSamples
  2. all historical samples since 2008.

  3. Upgrade C++ projects from earlier versions of Visual Studio
  4. To upgrade a project created in an earlier version of Visual Studio, just open the project in the latest version of Visual Studio. Visual Studio offers to upgrade the project to the current schema..

  5. Microsoft C++ porting and upgrading guide
  6. This article provides a guide for upgrading Microsoft C++ code to the latest version of Visual Studio. For projects created in Visual Studio 2010 through 2017, just open the project in Visual Studio 2019. You can upgrade a Visual Studio 2008 or earlier project in two steps. Use Visual Studio 2010 to convert the project to MSBuild format first. Then open the project in Visual Studio 2019. For complete instructions, see Upgrading C++ projects from earlier versions of Visual Studio.

    The toolsets in Visual Studio 2015, Visual Studio 2017, and Visual Studio 2019 are binary-compatible. Now you can upgrade to a more recent version of the compiler without having to upgrade your library dependencies. For more information, see C++ binary compatibility 2015-2019.

    An Exercise

  7. Porting a legacy MFC application to MFC Feature Pack
  8. Problems I encountered when polishing the GUI of an existing 200K LOC application..

    More Reference

  9. Porting legacy code
  10. This is a paragraph.

  11. How to Handle Legacy Code: A Detailed Guide Based on a Real-Life ExampleIt was originally published on https://www.apriorit.com/
  12. This is a paragraph.

  13. Recommended migration strategy for C++ project in Visual Studio 6
  14. For a large application written in C++ using Visual Studio 6, what is the best way to move into the modern era?

    I'd like to take an incremental approach where we slowly move portions of the code and write new features into C# for example and compile that into a library or dll that can be referenced from the legacy application..

  15. Update WINVER and _WIN32_WINNT
  16. When you use the Windows SDK, you can specify which versions of Windows your code can run on. The preprocessor macros WINVER and _WIN32_WINNT specify the minimum operating system version your code supports. Visual Studio and the Microsoft C++ compiler support targeting Windows 7 SP1 and later. Older toolsets include support for Windows XP SP2, Windows Server 2003 SP1, Vista, and Windows Server 2008. Windows 95, Windows 98, Windows ME, Windows NT, and Windows 2000 are unsupported.

    When you upgrade an older project, you may need to update your WINVER or _WIN32_WINNT macros. If they're assigned values for an unsupported version of Windows, you may see compilation errors related to these macros..

Case Study 4: Porting legacy Visual C++ projects

Visual Studio 2008 Sample project : wordpad

  1. Visual Studio C++ Samples
  2. Samples for Visual Studio C++ are available on the web. Microsoft has produced many C++ samples that demonstrate different functionalities across multiple technologies. Here are a few of the places to find additional samples:.

    Code Conformance

  3. C++ Conformance improvements, behavior changes, and bug fixes in Visual Studio 2017
  4. Microsoft C/C++ in Visual Studio (MSVC) makes conformance improvements and bug fixes in every release. This article lists the improvements by major release, then by version. To jump directly to the changes for a specific version, use list below In this article.

    This document lists the changes in Visual Studio 2017. For a guide to the changes in Visual Studio 2019, see C++ conformance improvements in Visual Studio 2019. For a complete list of previous conformance improvements, see Visual C++ What's New 2003 through 2015..

  5. C++ Conformance improvements, behavior changes, and bug fixes in Visual Studio 2019
  6. Microsoft C/C++ in Visual Studio (MSVC) makes conformance improvements and bug fixes in every release. This article lists the improvements by major release, then by version. To jump directly to the changes for a specific version, use the list below In this article.

    This document lists the changes in Visual Studio 2019. For a guide to the changes in Visual Studio 2017, see C++ conformance improvements in Visual Studio 2017. For a complete list of previous conformance improvements, see Visual C++ What's New 2003 through 2015..

  7. Microsoft C/C++ language conformance by Visual Studio version
  8. Standards conformance for the Microsoft C/C++ compiler in Visual Studio (MSVC) is a work in progress. Here's a summary of our ISO Standard C and C++ language and library conformance by Visual Studio version. Each C++ compiler and standard library feature name links to the ISO Standard C++ proposal paper that describes the feature, if one is available at publication time. The Supported column lists the Visual Studio version in which support for the feature first appeared.

    For details on conformance improvements, see C++ conformance improvements in Visual Studio. For a list of other changes, see What's New for Visual C++ in Visual Studio. For conformance changes in earlier versions, see Visual C++ change history and Visual C++ What's New 2003 through 2015. For current news from the C++ team, visit the C++ team blog..

    Porting an Upgrading Guide

  9. Microsoft C++ porting and upgrading guide
  10. This article provides a guide for upgrading Microsoft C++ code to the latest version of Visual Studio. For projects created in Visual Studio 2010 through 2017, just open the project in Visual Studio 2019. You can upgrade a Visual Studio 2008 or earlier project in two steps. Use Visual Studio 2010 to convert the project to MSBuild format first. Then open the project in Visual Studio 2019. For complete instructions, see Upgrading C++ projects from earlier versions of Visual Studio.

    The toolsets in Visual Studio 2015, Visual Studio 2017, and Visual Studio 2019 are binary-compatible. Now you can upgrade to a more recent version of the compiler without having to upgrade your library dependencies. For more information, see C++ binary compatibility 2015-2019...

  11. Visual Studio IDE tools for upgrading C++ code
  12. Visual Studio helps you upgrade legacy C++ code with compiler options, code analysis warnings, and editor features such as Quick Fixes, Quick Info, and the enhanced scroll bar. The term "legacy code" refers to any of these categories:

    1. Code that was formerly allowed by the Microsoft C++ compiler (MSVC) but never conformed to the C++ standard.
      To upgrade older non-conforming MSVC code, turn on the /permissive- compiler option. All instances of non-conforming usages are underlined with red squiggles in the code editor. The error messages in the Error List window include a recommendation for how to fix the error. Click on the error code to go to its help page in the documentation. If fixing all the errors at once is impractical, you can upgrade non-conforming code in stages by turning on the /permissive- option, fixing some errors, then turning the option off again. The code will compile with the new improvements, and you can go back and fix the remaining issues at a later time. See the /permissive- page for examples of non-conforming MSVC code.
    2. Code that was permitted in an earlier version of the C++ standard but has been deprecated or removed in a later version.
      To upgrade to a newer language standard, set the C++ Language Standard option to the desired standard and fix any compile errors that are raised. In general, we recommend setting the language standard to /std:c++17 or /std:c++20. The errors raised when upgrading to a newer standard are not related to the errors raised when using the /permissive- option.
    3. Code that conforms to all versions of the standard but is no longer considered best practice in modern C++.
    To identify code where changes are recommended, run Code analysis..

  13. Upgrade C++ projects from earlier versions of Visual Studio
  14. To upgrade a project created in an earlier version of Visual Studio, just open the project in the latest version of Visual Studio. Visual Studio offers to upgrade the project to the current schema.

    If you choose No, the project doesn't get upgraded. For projects created in Visual Studio 2010 and later, you can still use the project in the newer version of Visual Studio. Just set your project properties to continue to target the older toolset. If you leave the older version of Visual Studio on your computer, its toolset is available in later versions. For example, if your project must continue to run on Windows XP, you can upgrade to Visual Studio 2019. You then specify the toolset as v141_xp or earlier in your project properties. For more information, see Use native multi-targeting in Visual Studio to build old projects.

    If you choose Yes, then the project gets upgraded in place. It can't be converted back to the earlier version. In upgrade scenarios, that's why it's good practice to make a backup copy of the existing project and solution files...

  15. Porting and Upgrading: Examples and Case Studies
  16. You can get an idea of the kinds of issues you might encounter duration a migration from a previous version of Visual C++ to the current one by reviewing stories of successful migrations.

  17. Overview of potential upgrade issues (Visual C++)
  18. Over the years, the Microsoft C++ compiler has undergone many changes, along with changes in the C++ language itself, the C++ Standard Library, the C runtime (CRT), and other libraries such as MFC and ATL. As a result, when upgrading an application from an earlier version of Visual Studio you might encounter compiler and linker errors and warnings in code that previously compiled cleanly. The older the original code base, the greater the potential for such errors. This overview summarizes the most common classes of issues you are likely to encounter, and provides links to more detailed information.

  19. C++ binary compatibility between Visual Studio 2015, 2017, and 2019
  20. The Microsoft C++ (MSVC) compiler toolsets in Visual Studio 2013 and earlier don't guarantee binary compatibility across major versions. You can't link object files, static libraries, dynamic libraries, and executables built by different versions of these toolsets. The ABIs, object formats, and runtime libraries are incompatible.

    We've changed this behavior in Visual Studio 2015, 2017, and 2019. The runtime libraries and apps compiled by any of these versions of the compiler are binary-compatible. It's reflected in the C++ toolset major number, which starts with 14 for all three versions. (The toolset version is v140 for Visual Studio 2015, v141 for 2017, and v142 for 2019). Say you have third-party libraries built by Visual Studio 2015. You can still use them in an application built by Visual Studio 2017 or 2019. There's no need to recompile with a matching toolset. The latest version of the Microsoft Visual C++ Redistributable package (the Redistributable) works for all of them..

    Code Samples

  21. Porting Guide: Spy++
  22. This porting case study is designed to give you an idea of what a typical porting project is like, the types of problems you might encounter, and some general tips and tricks for addressing porting problems. It's not meant to be a definitive guide to porting, since the experience of porting a project depends very much on the specifics of the code.

  23. Porting Guide: MFC Scribble
  24. This topic is the first of several topics that introduce you to the upgrade procedure for Visual Studio C++ projects that were created in older versions of Visual Studio to Visual Studio 2017. These topics introduce the upgrade process by example, starting with a very simple project and moving to slightly more complex ones. In this topic, we work through the upgrade process for a specific project, MFC Scribble. It is suitable as a basic introduction to the upgrade process for C++ projects.

    Each version of Visual Studio introduces possible incompatibilities that can complicate moving code from an older version of Visual Studio to a newer one. Sometimes the required changes are in your code, so you must recompile and update your code, and sometimes the required changes are to the project files. When you open a project that was created with a previous version of Visual Studio, Visual Studio automatically asks you whether to update a project or solution to the latest version. These tools usually upgrade only the project files; they do not modify your source code..

Case Study 3: porting legacy Visual C++ project

Case Study 3: porting legacy Visual C++ project

  1. This is a paragraph.

  2. Migrating from VC7 to VC8
  3. In September-October 2006 i went through the process of getting the VTP software to build and run with VC8, also known as "Microsoft Visual C++ Studio 2005 [Express] Edition 8.0". Here are some of the steps.

    My assumption (my hope) was that it should be possible to build just the VTP code with VC8, and use all the dependency library binaries as-is, even though they are built with older compiler versions. As it turns out, that isn't quite possible...

  4. This is a paragraph.

  5. This is a paragraph.

  6. This is a paragraph.

  7. This is a paragraph.

  8. This is a paragraph.

  9. This is a paragraph.

  10. This is a paragraph.

  11. This is a paragraph.

  12. This is a paragraph.

  13. This is a paragraph.

  14. This is a paragraph.

  15. This is a paragraph.

  16. This is a paragraph.

  17. This is a paragraph.

  18. This is a paragraph.

  19. This is a paragraph.

Visual C++ project configuration: Code Generation Options

Visual C++ project configuration: Code Generation Options

  1. Code Generation Options
  2. /MT or /MD option This library is fully thread-safe and provided as both of MT (Multi-thread) and MD (Multi-thread DLL) version libraries. Projects which uses /MT option should use release and /MD should use release_md. For debugging purpose, you can use debug for /MTd and debug_md for /MDd.

    For linking of debugging builds, see Debug version of the library (Windows)..

  3. This is a paragraph.

  4. This is a paragraph.

  5. This is a paragraph.

  6. This is a paragraph.

  7. This is a paragraph.

  8. This is a paragraph.

  9. This is a paragraph.

  10. This is a paragraph.

  11. This is a paragraph.

  12. This is a paragraph.

  13. This is a paragraph.

  14. This is a paragraph.

  15. This is a paragraph.

  16. This is a paragraph.

  17. This is a paragraph.

  18. This is a paragraph.

  19. This is a paragraph.

Visual C++ project configuration: treat wchar_t as built in type

Visual C++ project configuration: Configuration Properties ==>C/C++ ==> Language==> treat wchar_t as built in type: YES or NO

    One Document

  1. 1.24. Enforcing Strict Conformance to the C++ Standard
  2. Problem You want your compiler to accept only programs that conform to the C++ language standard.

    Solution Command-line options for specifying strict conformance to the C++ standard are listed in Table 1-37. Instructions for enforcing strict conformance from your IDE are given in Table 1-38..

    Visual C++ IDE: From your project’s property pages, go to Configuration Properties→ C/C++→ Language

    1. Set Disable Language Extensions,
    2. Treat wchar_t as Built-in Type, and
    3. Force Conformance in For Loop Scopes to Yes.
  3. Set compiler and build properties
  4. In the IDE, all information that is needed to build a project is exposed as properties. This information includes the application name, extension (such as DLL, LIB, EXE), compiler options, linker options, debugger settings, custom build steps, and many other things. Typically, you use property pages to view and modify these properties. To access the property pages, choose Project > projectname Properties from the main menu, or right-click on the project node in Solution Explorer and choose Properties..

  5. Compiler options listed by category
  6. This article contains a categorical list of compiler options. For an alphabetical list, see Compiler options listed alphabetically..

  7. Linker options
  8. LINK.exe links Common Object File Format (COFF) object files and libraries to create an executable (.exe) file or a dynamic-link library (DLL)..

  9. Linking
  10. In a C++ project, the linking step is performed after the compiler has compiled the source code into object files (*.obj). The linker (link.exe) combines the object files into a single executable file.

    Linker options can be set inside or outside of Visual Studio. Within Visual Studio, you access linker options by right-clicking on a project node in Solution Explorer and choosing Properties to display the property pages. Choose Linker in the left pane to expand the node and see all the options..

    Questions & Answers

  11. wchar_t is not treated as built-in type even when the option is enabled
  12. wchar_t is not treated as built-in type even when the option is enabled.

  13. /Zc:wchar_t (wchar_t Is Native Type)
  14. Parse wchar_t as a built-in type according to the C++ standard.

    Remarks If /Zc:wchar_t is on, wchar_t is a keyword for a built-in integral type in code compiled as C++. If /Zc:wchar_t- (with a minus sign) is specified, or in code compiled as C, wchar_t is not a built-in type. Instead, wchar_t is defined as a typedef for unsigned short in the canonical header stddef.h. (The Microsoft implementation defines it in another header that is included by stddef.h and other standard headers.)

    We do not recommend /Zc:wchar_t- because the C++ standard requires that wchar_t be a built-in type. Using the typedef version can cause portability problems. If you upgrade from earlier versions of Visual Studio and encounter compiler error C2664 because the code is trying to implicitly convert a wchar_t to unsigned short, we recommend that you change the code to fix the error, instead of setting /Zc:wchar_t-.

    The /Zc:wchar_t option is on by default in C++ compilations, and is ignored in C compilations. The /permissive- option does not affect /Zc:wchar_t.

    Microsoft implements wchar_t as a two-byte unsigned value. It maps to the Microsoft-specific native type __wchar_t. For more information about wchar_t, see Data Type Ranges and Fundamental Types.

  15. /permissive- (Standards conformance)
  16. Specify standards conformance mode to the compiler. Use this option to help you identify and fix conformance issues in your code, to make it both more correct and more portable..

    Remarks The /permissive- option is supported in Visual Studio 2017 and later. /permissive is supported in Visual Studio 2019 version 16.8 and later.

    You can use the /permissive- compiler option to specify standards-conforming compiler behavior. This option disables permissive behaviors, and sets the /Zc compiler options for strict conformance. In the IDE, this option also makes the IntelliSense engine underline non-conforming code.

    The /permissive- option uses the conformance support in the current compiler version to determine which language constructs are non-conforming. The option doesn't determine if your code conforms to a specific version of the C++ standard. To enable all implemented compiler support for the latest draft standard, use the /std:c++latest option. To restrict the compiler support to the currently implemented C++20 standard, use the /std:c++20 option. To restrict the compiler support to the currently implemented C++17 standard, use the /std:c++17 option. To restrict the compiler support to more closely match the C++14 standard, use the /std:c++14 option, which is the default.

  17. How to resolve a specific LNK2001 error using visual studio 2015 (C++ project)
  18. Historically, in order for our project to compile and link successfully the compiler option 'Treat WChar_t as built in type' has always been set to No.

    Now we are adding a new feature through the use of a 3rd part library file. Through testing it appears that in order to use this library successfully the above compiler option must be set to Yes or I will get a linking error:

    Error LNK2001 unresolved external symbol "public: int __thiscall BluetoothClient::Connect(unsigned short *)" (?Connect@BluetoothClient@@QAEHPAG@Z) cmj C:\dev\Products\cmj\cmj\VC7 Project\main.obj

    The BluetoothClient::Connect method accepts one variable of type LPWSTR which is defined in terms of WCHAR which is defined in terms of wchar_t (winnt.h).

    If I set the compiler option to yes it will link successfully (and run) in my test project. ​But, ​If I set it to yes for the real project it causes hundreds of C2664 compiler errors in other areas of the project where variables of type wchar_t and tchar, etc, are passed as arguments.

    How can I resolve this linking error without turning on the 'Treat WChar_t as built in type' compiler option?.

  19. This is a paragraph.

  20. This is a paragraph.

  21. This is a paragraph.

  22. This is a paragraph.

  23. This is a paragraph.

  24. This is a paragraph.

  25. This is a paragraph.

  26. This is a paragraph.

  27. This is a paragraph.

Error LNK1169 one or more multiply defined symbols found

When I compile the demo from pretty WinAPI class.

Error LNK1169 one or more multiply defined symbols found

  1. HOW TO FIX IT? SOS! fatal error LNK1169: one or more multiply defined symbols found
  2. ## This error is preceded by error LNK2005. Generally, this error means you have broken the one definition rule, which allows only one definition for any used template, function, type, or object in a given object file, and only one definition across the entire executable for externally visible objects or functions.

    Do you meet this error when you are running test project? And does your project build/debug well without any error?

    According to the official document, You could refer to below possible causes and for solutions please refer to this link Possible causes and solutions.

    1. (1) Check if one of your header file defines a variable and maybe include this header file in more than one source file in your project.
    2. (2) This error can occur when a header file defines a function that isn’t inline. If you include this header file in more than one source file, you get multiple definitions of the function in the executable.
    3. (3) This error can also occur if you define member functions outside the class declaration in a header file. (4) This error can occur if you link more than one version of the standard library or CRT. (5) This error can occur if you mix use of static and dynamic libraries when you use the /clr option (6) This error can occur if the symbol is a packaged function (created by compiling with /Gy) and it was included in more than one file, but was changed between compilations. (7) This error can occur if the symbol is defined differently in two member objects in different libraries, and both member objects are used. One way to fix this issue when the libraries are statically linked is to use the member object from only one library, and include that library first on the linker command line. (8) This error can occur if an extern const variable is defined twice, and has a different value in each definition.
    4. (9) This error can occur if you use uuid.lib in combination with other .lib files that define GUIDs (for example, oledb.lib and adsiid.lib).

    There are some similar issues and maybe helpful.

  3. fatal error LNK1169: one or more multiply defined symbols found in game programming
  4. However to me, it seems that the entire code is written properly and the two ints are only mentioned in the Global header and all objects seem to be inheriting properly. However, like I just said, I'm a beginner in OOP so I really need an opinion : It is also worth mentioning that I am using allegro 5 to create a side shooter..

  5. One or more multiply defined symbols found
  6. But why does this happen? I have #ifndef #define and #endif in the header so multiple definitions shouldn't happen.

  7. "multiple defined symbols error" when using stdafx.h with own headers [duplicate]
  8. This is a paragraph.

  9. multiple definition in header file
  10. This is a paragraph.

  11. Damn compiler linker errors: fatal error LNK1169
  12. I was happily programming a small DX game in VC++, when all of a sudden the next time I try to compile it, I get a linker error:

    Debug/CreateDevice.exe : fatal error LNK1169: one or more multiply defined symbols found

    I looked in MSVC, and found a little info on the error, here it is:

    Linker Tools Error LNK2005 symbol already defined in object

    The given symbol, displayed in its decorated form, was multiply defined. Tips One of the following may be a cause:

    The most common cause of this error is accidentally linking with both the single-threaded and multithreaded libraries. Ensure that the application project file includes only the appropriate libraries and that any third-party libraries have appropriately created single-threaded or multithreaded versions. The given symbol was a packaged function (created by compiling with /Gy) and was included in more than one file but was changed between compilations. Recompile all files that include the symbol. The given symbol was defined differently in two member objects in different libraries, and both member objects were used. An absolute was defined twice, with a different value in each definition. This error is followed by fatal error LNK1169. Linker Tools Error LNK1169 one or more multiply defined symbols found The build failed due to multiple definitions of one or more symbols. This error is preceded by error LNK2005. The /FORCE or /FORCE:MULTIPLE Syntax /FORCE:{MULTIPLE|UNRESOLVED} This option tells the linker to create a valid .EXE file or DLL even if a symbol is referenced but not defined or is multiply defined. On the command line, the /FORCE option can take an optional argument: Use /FORCE:MULTIPLE to create an output file whether or not LINK finds more than one definition for a symbol. Use /FORCE:UNRESOLVED to create an output file whether or not LINK finds an undefined symbol. A file created with this option may not run as expected. The linker will not link incrementally when the /FORCE option is specified. To find this option in the development environment, click Settings on the Project menu. Then click the Link tab, and click Customize in the Category box.

    I have been unable to find the cause of the error, and anyway what is a: 1. absolute 2. multiply defined symbol 3. single-threaded and multithreaded libraries please can you help me out? Is their a easy way to find out what the cause is? ect.

  13. This is a paragraph.

  14. This is a paragraph.

  15. This is a paragraph.

  16. This is a paragraph.

  17. This is a paragraph.

  18. This is a paragraph.

  19. This is a paragraph.

  20. This is a paragraph.

  21. This is a paragraph.

  22. This is a paragraph.

  23. This is a paragraph.

  24. This is a paragraph.

Friday, October 22, 2021

Case Study 2: VC ++ project configurations in Visual Studio 2019 using Crypto++ compilation as an example

used Crypto++ as an example to do case study 2: Project Configuration in Visual C++

study the typical configurations for a Visual C++ project.

    Previous Case Study

  1. Case Study: VC ++ project configurations in Visual Studio
  2. VC ++ project configurations in Visual Studio. use these two projects to set up project parameters..

    New Case:

  3. Compiling and Integrating Crypto++ into the Microsoft Visual C++ Environment
  4. Avoid common pitfalls when using Crypto++ and VC++..

    More Applications

  5. Product Activation Based on RSA Signatures
  6. Validate Product Keys using RSA Signing Functions and Crypto++.

  7. VinylStudio - Registration and Purchase
  8. The regular version of VinylStudio ('VinylStudio Standard') costs US$ 29.95 for non-EU and UK residents. VinylStudio Pro costs US$ 49.95. EU and UK residents will additionally be charged VAT at the rate prevailing in your home country. You will be charged in your local currency..

  9. Installation IDs Based on Truncated Hashing
  10. Create Semi-Anonymous Installation Fingerprints Using Truncated Hashing and Crypto++

  11. Dynamic TEXT Section Image Verification
  12. lots of good links and references.

    Detect Hardware Faults and Unauthorized In-Memory Patches with Hashing using Crypto++.

  13. Tamper Aware and Self Healing Code
  14. Dynamically Detect Code Alterations and Repair In-Memory Executable Files Using Hashing and Crypto++.

  15. Product Keys Based on the Advanced Encryption Standard (AES)
  16. A Compact Product Key System Based on AES and Crypto++.

  17. Product Keys Based on Elliptic Curve Cryptography
  18. This is a paragraph.

  19. Cryptographic Interoperability: Keys
  20. Import and export Cryptographic Keys in PKCS#8 and X.509 formats, using Crypto++, C#, and Java..

  21. Installation IDs Based on Truncated Hashing
  22. Create Semi-Anonymous Installation Fingerprints Using Truncated Hashing and Crypto++

  23. Applied Crypto++: Block Ciphers
  24. Encrypt data using Block Ciphers with Crypto++..

  25. Applied OpenSSL: CTR Mode in File Encryption
  26. In this article, the use of open source OpenSSL library for file and disk encryption is described

  27. Driver to Hide Processes and Files
  28. In this article, we describe the driver we created to hide processes and files in a system.

  29. File System Filter Driver Tutorial
  30. This tutorial will show you how to develop a simple file system filter driver.

  31. File System Filter Driver Tutorial
  32. This tutorial will show you how to develop a simple file system filter driver..

  33. This is a paragraph.

  34. This is a paragraph.

  35. This is a paragraph.

  36. This is a paragraph.

  37. This is a paragraph.

Tuesday, October 19, 2021

CPU turbo boost

CPU turbo boost

how to find motherboard speed -> images

    Crucial tool to check which RAM you need

  1. How to Check RAM and Motherboard Compatibility
  2. Things to check to keep your PC parts compatible.

  3. Welcome to the Crucial® System Scanner
  4. Welcome to the Crucial® System Scanner.

  5. Find a 100% compatible memory or storage upgrade
  6. scanner page

    CPUID freeware

  7. How to find RAM speed, size and type
  8. If you want to upgrade your PC's memory, you need to know what you already have.

  9. CPU-Z
  10. CPU-Z is a freeware utility from CPUID that detects information about your computer processor, motherboard, memory, and graphics card. The software provides an in-depth report of the specifications and performance of your computer's hardware. The following image shows CPU details in the CPU-Z program.

  11. How do I determine my computer bus speed?
  12. Many software programs are available over the Internet that list the speed of the front-side bus. Some of these programs are free and some require payment. One free program that is worth checking out is CPU-Z. It can be downloaded to your computer from various websites and provides detailed information about your computer, including the front-side bus speed..

    Turbo Boost

  13. How to enable or disable Intel Turbo Boost Max Technology on Windows 11/10
  14. Intel Turbo Boost Technology or TBTM is technology that enables the processor core of a computer to run faster than the marked frequency. Although the boost enables the core to run faster, the processor should work in the power, temperature, and specification limits of the Thermal Design Power (TDP). The outcome of this activity – performance of both single and multi-threaded applications is enhanced by manifolds...

  15. How Does Intel® Turbo Boost Technology Work?
  16. CPUs don’t always need to run at their maximum frequency. Some programs are more dependent on memory to run smoothly, while others are CPU-intensive. Intel® Turbo Boost Technology is an energy-efficient solution to this imbalance: it lets the CPU run at its base clock speed when handling light workloads, then jump to a higher clock speed for heavy workloads.

    Running at a lower clock rate (the number of cycles executed by the processor every second) allows the processor to use less power, which can reduce heat and positively impact battery life in laptops. But when more speed is needed, Intel® Turbo Boost Technology dynamically increases the clock rate to compensate. This is sometimes called “algorithmic overclocking”..

  17. Overview Information for Intel® Turbo Boost Technology
  18. Intel Turbo Boost Technology is a way to automatically run the processor core faster than the marked frequency. The processor must be working in the power, temperature, and specification limits of the thermal design power (TDP). This results in increased performance of both single and multithreaded applications. There is no need to install any software or application to support Intel® Turbo Boost Technology..

  19. Enabling or disabling Intel Turbo Boost Technology
  20. From the System Utilities screen, select System Configuration > BIOS/Platform Configuration (RBSU) > Performance Options > Intel (R) Turbo Boost Technology and press Enter. Select a setting and press Enter. Enabled—Enables the logical processor cores on processors supporting hyperthreading technology. Disabled —Reduces power usage and also reduces the system’s maximum achievable performance under some workloads. Press F10. .

  21. IS IT SAFE TO USE TURBOBOOST ON A LAPTOP CPU?
  22. I will soon be receiving my new toy, an Omega Supreme laptop (as detailed in my signature). The thread title is a little misleading as I believe the CPU is actually able to be used in a desktop PC.

    I am aware that it is not advisable to overclock a laptop mainly because of cooling issues, however it is safe to use the Intel Turboboost functionality? I presume this is completely different to overclocking but don't want to risk causing any damage?.

  23. How to Identify My Intel® Processor
  24. There are different options to get the name and the number of the Intel® Processors.

    The methods below apply on all Intel® processors such as Intel® Core™, Intel® Xeon®, Intel® Pentium®, Intel® Celeron®, and Intel Atom® processors. .

  25. How Do I Check If My Intel® Processor Supports Intel® Turbo Boost Technology?
  26. To find out if your Intel® Processor supports Intel® Turbo Boost Technology 2.0 or Intel® Turbo Boost Max 3.0, follow the steps below and refer to the illustrations.

    1. Enter the processor number in the product specification site (ark) on the search box located on the right-top corner.
    2. Refer to how to identify my intel® processor if you do not have the number of the processor.
    3. Once on the processor's specification page, find Performance Specifications.
    4. Look for Intel® Turbo Boost Technology 2.0 Frequency for Intel® Turbo 2.0 support. You can also check under Advanced Techonlogies for the Intel® Turbo Boost Technology 2.0 option.
    5. Look for Intel® Turbo Boost Technology Max 3.0 for Intel® Turbo Max 3.0 support. You can also check under Advanced Techonlogies for the Intel® Turbo Boost Technology Max 3.0 set to Yes..
  27. What Is Intel Turbo Boost? Here's How It Works
  28. Intel's Turbo Boost feature is quite useful but hard to understand. How does Turbo Boost work compared to AMD Turbo Core?.

  29. Understanding Clock: Processor Base and Boost Speeds
  30. When you’re in the market for a processor, there is a list of things you should be considering. Traditionally, pretty much the only thing most consumers look at is its total Gigahertz power. Many of those people probably don’t even know what it means (it’s the number of clock cycles—effectively, calculations—a processor completes in one second, in billions; referred to as a system’s clock speed), but it’s an easy thing to compare. If you’re buying a laptop and can choose the processor you want, you can assume, generally, that the one rated at 2.5 GHz is probably faster than the one rated at 2.3 GHz.

    The past few years have brought an added wrinkle: Boosting speed. Most processing units, graphical and computational, now have a base clock speed and a boost speed. Intel® calls this Turbo Boost; AMD calls it Turbo Core..

  31. Intel’s Frequency Boosting Technologies Explained
  32. Intel processors have never been simple, but they definitely used to be simpler. In the endless journey to provide more performance, successive generations of CPUs have brought higher frequencies and more cores. As frequencies leveled off, however, other methods to increase performance emerged with various technologies that dynamically alter the speed of the processor (i.e., give it a “boost”). As this is a topic that is often misunderstood, it seemed like a good idea to provide a brief overview.

  33. how to check which motherboard best for any procssors/CPUs
  34. This is a paragraph.

  35. How to find out how much RAM Frequency and which processor your motherboard supports
  36. How to find out how much RAM Frequency and which processor your motherboard supports.

  37. How to Choose the Correct RAM Upgrade -Adam Lovinus -March 10, 2021
  38. How to Choose the Correct RAM Upgrade Adam Lovinus March 10, 2021.

  39. PC BIOS Settings
  40. BIOS / UEFI settings, including boot options, secure boot, enabling XMP memory profiles, and BIOS passwords. Also information on the differences between a legacy BIOS and a UEFI BIOS, and how to enter the BIOS..

  41. Explaining RAM
  42. RAM history, technologies, types and form factors. Including SIPs, SIMMS, DIMMs, SO-DIMMS and the latest DDR SDRAM specifications, this video explains what you need to know about random access memory. And we even get to see a magnetic core storage unit from the 1960s! .

  43. Explaining M.2 SSDs
  44. M.2.is one of the latest means of fitting a solid state drive (SSD) in a desktop or other computer. This video explains the different M.2 specifications, as well as comparing M.2 with traditional 2.5” SATA SSDs..

  45. Why's CPU-Z showing < 100 bus speed
  46. Sorry if this is, like, common knowledge, but I did google for a bit and came up with old stuff only... Q - why is CPU-Z showing less than 100 bus speed? I've never seen it reach 99, let alone 100 (which is my bios setting and shows in all other software)? Yes, all my C states, etc features are disabled in BIOS and this is under prime95 load? Thanks!.

  47. How much is your Bus Speed? whats the best Value and why is mine not set to 100.00 ? [ X570 | R3700x | CPU-Z Screenshot ]
  48. i have a x570-e ROG Strix Mainboard with a ryzen 3700x and 3200 cl14 ram with samsung b die. (not OC'ed yet to 3600)

    as most of you do i have struggle get the boost clocks which are printed on the box. max singlecore boost like 4.300 MHz/ 4325MHz however i saw my bus is only 99.80 MHz.

    Can someone explain me why its only 99.8 ? i saw screenshots with 99.98 MHz. does i need overclock that or whats going on? is it a bios bug or is 99.80 default? would overclock that to 99.98 MHz change my tempreture and/or my core voltage?

  49. How to Check CPU Speed
  50. Your CPU speed determines how fast your process can perform tasks. CPU speeds matter less than they did in the past, thanks to the advent of multi-core processors. Still, it can be useful to check your CPU speed when purchasing a new program to make sure that your computer can handle it. It's also very useful to know how to check the CPU's true speed when you're overclocking for better performance..

    CPU benchmark

  51. Intel Core i7-1185G7 vs. Core i7-1165G7 Review
  52. Following up to our first Tiger Lake review, today we're taking a look at Intel’s flagship 11th generation mobile processor, the Core i7-1185G7. The CPU we looked at before, the Core i7-1165G7, is seen in far more laptops on the market and is going be the primary focus for most laptop buyers, however the 1185G7 is technically the faster CPU and the chip that sits right at the top of the table..