- Building Boost 32-bit and 64-bit libraries on Windows
- Justin Bowes
- Building MAPI applications on 32-bit and 64-bit platforms
- Operating system and Office support for 64-bit Outlook
- Preparing MAPI applications for 32-bit and 64-bit platforms
- 32-bit MAPI application and 32-bit Outlook
- 32-bit MAPI application and 64-bit Outlook
- 64-bit MAPI application and 64-bit Outlook
- 64-bit MAPI application and 32-bit Outlook
- Exception: MAPISendMail
- Build 32-bit DLL on 64-bit Windows® Platform Using MSVC Toolchain
- Check Platform and Determine MSVC Version
- Function for the Dynamic Link Library
- Create and Configure an MSVC Toolchain
- Register the Toolchain
- Create Code Generation Configuration Object
- Configure Code Generation for 32-bit Hardware
- Configure Code Generation to Use the 32-bit Toolchain
- Select Verbose Status Reporting
- Determine Whether to Generate Code Only
- Generate Code and Build a DLL
- Build and Run an Executable
- Install 32 bit Software on 64 bit Windows 10 Operating System
- Jump to:
- Main Difference between 32 bit and 64 bit Architecture:
- Install 32 bit Software on 64 bit Windows 10- Easy Steps:
- Conclusion of the Article:
Building Boost 32-bit and 64-bit libraries on Windows
After completing this procedure you will have Boost’s libraries in x86 and x64 variants, at the same time.
In MSVC, include them with a linker path of where_i_extracted_boost\stage\$(PlatformTarget)\lib for all configurations and all platforms, unless you’re doing ARM or something like that (in which case, you do you!).
Oh, you want I should explain?
Create b2.exe . If you have Symantec Endpoint Protection installed, this might trigger a quarantine. This would be a good time to add your development folders to your exclude list.
The build tool you just built. Replacement for bjam .
b2 caches its configuration. When you build the second library with different settings, it looks like it uses the cached settings from the first build. Specify a distinct build directory for each build, or delete bin.v2 between runs.
Build it this wide. If you thought you saw the Boost documentation claiming that it will build 64-bit by default if you’re on a 64 bit host running 64-bit windows, you were clearly mistaken like I was. When you start the 64-bit build, you will see both 32-bit: yes and x86: yes . You can optionally worry about whether these instructions are actually going to work at this point, but the Py_ssize_t to unsigned int cast warnings flying by are your guarantee you’ve entered 64-bit flavour country.
It’s 2017. Include threading support. Again, if you thought you saw the Boost documentation claiming that it will build multithreaded by default, what can I say?
Build [debug,release]x[static,shared] . That is, build all the variants so we don’t have to do this again later.
By default, boost will build to stage/ both times, wiping out your first build with your second. Don’t do the default thing.
It seemed to pick up MSVC14 on my system by default, but we’ve been burned before, haven’t we? Specify explicitly. If you want to build for multiple toolsets, you can use the same stage dir — the lib filenames specify the toolset to which they apply, so they won’t collide. You’d probably want a different build-dir though.
Boost builds on a single core by default, which is a shame because you’ve likely got 4, 6 or 8, times two for hyper-threading if you have that.
Justin Bowes
I’m a freelance developer interested in web and application development, games and data visualization, and information security and privacy. Contact me at first initial last name at informi dot ca.
Building MAPI applications on 32-bit and 64-bit platforms
Applies to: Outlook 2013 | Outlook 2016
This topic describes the actions that MAPI developers should take to change and rebuild 32-bit MAPI applications to run on a 64-bit platform, and 64-bit applications to run on a 32-bit platform. In this topic, a 64-bit platform is a computer installed with 64-bit Microsoft Outlook and 64-bit Windows, and a 32-bit platform is a computer installed with a 32-bit Outlook and 32-bit or 64-bit Windows.
Operating system and Office support for 64-bit Outlook
The term bitness refers to the distinction between 32-bit and 64-bit processor architectures and the associated compatibility of applications. In this topic, bitness is used to qualify the version of Windows, Microsoft Office, Outlook, or a MAPI application built to suit a 32-bit or 64-bit processor architecture of a computer, and possibly other applications that run on that computer.
Starting in Microsoft Office 2010, Outlook is available as a 32-bit and a 64-bit application. On the same computer, the bitness of Outlook depends on the bitness of the Windows operating system (x86 or x64), and of Microsoft Office, if Office is already installed on that computer. The following are some of the factors that determine the feasibility of installing a 32-bit or a 64-bit version of Outlook:
32-bit Office (and 32-bit Outlook) can be installed on a 32-bit or 64-bit version of the Windows operating system. 64-bit Office (and 64-bit Outlook) can be installed only on a 64-bit operating system.
The default installation of Office on a 64-bit version of the Windows operating system is 32-bit Office.
The bitness of an installed version of Outlook is always the same as the bitness of Office, if Office is installed on the same computer. In other words, a 32-bit version of Outlook cannot be installed on the same computer that already has 64-bit versions of other Office applications installed, such as 64-bit Microsoft Word or 64-bit Microsoft Excel. Similarly, a 64-bit version of Outlook cannot be installed on the same computer that already has 32-bit versions of other Office applications installed.
Preparing MAPI applications for 32-bit and 64-bit platforms
MAPI applications include standalone applications such as Microsoft Communicator and MFCMAPI, and service providers such as address book, store, and transport providers. For MAPI method and function calls to work in a MAPI application (with the exception of one Simple MAPI function, MAPISendMail), the bitness of the MAPI application must be the same as the bitness of the MAPI subsystem on the computer that the application is targeted to run on. The bitness of the MAPI subsystem, in turn, is determined by and always the same as the bitness of the installed version of Outlook. The following table summarizes the necessary actions to prepare MAPI applications to run on targeted computers configured with Office and Windows of various bitness.
Bitness of MAPI application | Bitness of Outlook on targeted computer | Bitness of Windows on targeted computer | Necessary action to enable application to run on targeted computer |
---|---|---|---|
32-bit | 32-bit | 32-bit or 64-bit | No specific action is necessary. |
32-bit | 64-bit | 64-bit | Rebuild the application as a 64-bit application. Otherwise, all MAPI method and function calls (except for MAPISendMail) will fail. |
64-bit | 64-bit | 64-bit | No specific action is necessary. |
64-bit | 32-bit | 32-bit or 64-bit | Rebuild the application as a 32-bit application. Otherwise, all MAPI method and function calls (except for MAPISendMail) will fail. |
The following sections further explain each scenario. For scenarios that require rebuilding the MAPI application, see Link to MAPI Functions for additional information regarding linking to and calling MAPI functions.
32-bit MAPI application and 32-bit Outlook
MAPI applications compiled for a 32-bit MAPI subsystem that is available in 32-bit versions of Outlook, including those versions prior to Microsoft Outlook 2013, continue to be supported on computers installed with 32-bit Outlook and a 32-bit or 64-bit Windows operating system. There is no specific action necessary for the application developers.
32-bit MAPI application and 64-bit Outlook
32-bit MAPI applications are not supported to run on a computer installed with 64-bit Outlook and 64-bit Windows. The application developer must update and rebuild the application as a 64-bit application for the 64-bit platform. This is because a 32-bit application cannot load a 64-bit Msmapi32.dll file. There are a small number of API changes that application developers must incorporate to build their code successfully for a 64-bit environment. MAPI header files have been updated with these changes to support the 64-bit platform. You can download these header files at Outlook 2010: MAPI Header Files. Developers can use this same set of MAPI header files to build both 32-bit and 64-bit MAPI applications.
64-bit MAPI application and 64-bit Outlook
64-bit MAPI applications are supported on computers installed with 64-bit Outlook and 64-bit Windows. There is no specific action necessary for the application developers.
64-bit MAPI application and 32-bit Outlook
64-bit MAPI applications are not supported to run on a computer installed with 32-bit Outlook and 32-bit or 64-bit Windows. The application developer must update and rebuild the application as a 32-bit application to work with 32-bit Outlook. Use the updated MAPI header files, which you can download at Outlook 2010: MAPI Header Files. Developers can use this same set of MAPI header files to build both 32-bit and 64-bit MAPI applications.
Exception: MAPISendMail
In general, a 32-bit MAPI application must not run on a 64-bit platform (64-bit Outlook on 64-bit Windows) without first being rebuilt as a 64-bit application, and a 64-bit MAPI application must not run on a computer installed with 32-bit Outlook and 32-bit or 64-bit Windows without first being rebuilt as a 32-bit application. Figure 1 shows an alert dialog box that would be displayed if either of these scenarios occurs.
Figure 1. Error message for most cross-bitness MAPI calls.
However, one function call among all Simple MAPI and MAPI elements, MAPISendMail, would succeed in a Windows-32-bit-on-Windows-64-bit (WOW64) or Windows-64-bit-on-Windows-32-bit (WOW32) scenario and would not result in the above alert. This WOW64 scenario only applies to Windows 7.
Figure 2 shows a WOW64 scenario in which a 32-bit MAPI application calls MAPISendMail on a computer installed with 64-bit Windows 7. In this scenario, the MAPI library makes a COM call to launch a 64-bit Fixmapi application. The Fixmapi application implicitly links to the MAPI library, which routes the function call to the Windows MAPI stub, which in turn forwards the call to the Outlook MAPI stub, enabling the MAPISendMail function call to succeed.
Figure 2. Processing MAPISendMail in a WOW64 scenario.
Build 32-bit DLL on 64-bit Windows® Platform Using MSVC Toolchain
Register and use a Microsoft® Visual C/C++ (MSVC) toolchain running on a 64-bit Windows® platform to compile a 32-bit dynamic link library (DLL). This example uses a Microsoft® compiler. However, the concepts and programming interface apply for other toolchains. Once you register the toolchain, you can select it from a list of toolchains, and the code generator generates a makefile to build the code by using that toolchain. A toolchain consists of several tools, such as a compiler, linker, and archiver with multiple different configuration options. The toolchain compiles, links, and runs code on a specified platform. To access the files that this example uses, click Open Script.
Check Platform and Determine MSVC Version
This code checks that the platform is supported and that you have a supported version of Microsoft® Visual C/C++. The my_msvc_32bit_tc.m toolchain definition can use the Microsoft® Visual Studio versions 9.0, 10.0, 11.0, 12.0, 14.0, or 15.0.
If you are not using a Windows® platform, or if you do not have a supported version of Microsoft® Visual C/C++, the example generates only code and a makefile, without running the generated makefile.
Function for the Dynamic Link Library
The example function for the dynamic link library, myMatlabFunction.m , multiplies a number by two.
Create and Configure an MSVC Toolchain
The my_msvc_32bit_tc.m toolchain definition function takes in an argument containing the Visual Studio version number. In this example, the commands that create and configure this toolchain are:
Register the Toolchain
Before the code generator can use a toolchain for the build process, the RTW.TargetRegistry must contain the toolchain registration. This registration can come from any rtwTargetInfo.m file on the MATLAB path. MATLAB will load a new registration if the RTW.TargetRegistry is reset.
Create the rtwTargetInfo.m file from the corresponding text file myRtwTargetInfo.txt .
Create Code Generation Configuration Object
To generate the 32-bit dynamic link library (DLL), create a ‘dll’ code generation configuration object. Specifying ‘dll’ directs the linker (a build tool in the toolchain) to use «Shared Library» linker commands.
Configure Code Generation for 32-bit Hardware
To successfully generate code that is compatible with 32-bit hardware, the generated code must use the correct underlying C types (for example, int , signed char , and others). These types are the basis for typedef statements for sized types (for example, uint8 , int16 , and others). Set the configuration with the command:
Configure Code Generation to Use the 32-bit Toolchain
Set the name of the Toolchain property to match the Name that you specify in the rtwTargetInfo.m file.
Select Verbose Status Reporting
To provide confirmation of compiler flags that the toolchain uses to build the DLL, select verbose status reporting.
Determine Whether to Generate Code Only
When the Microsoft® compilers are not installed, the code generator generates only code and the makefile. When the supported compilers are installed, the code generator builds the 32-bit binary file.
Generate Code and Build a DLL
To use the toolchain for code generation and build the DLL (if build is enabled), at the command prompt, enter:
Build and Run an Executable
If you have a supported version of the compiler installed, you can build the 32-bit executable by using a C main function. You can use the executable to test that the generated code works as expected.
Install 32 bit Software on 64 bit Windows 10 Operating System
Install 32 bit Software on 64 bit Windows: This topic is quite interesting as it is always a question whether a 32-bit architecture can be used on a different architecture like a 64 bit Architecture Windows 10. 32 bit is an old technology when compared to the 64 bit. 32 bit dates back to 1990 where Intel and AMD starting using 32 bit for their computers. on the other hand, 64 bit theoretically dates back to 1960 when IBM used the 64 bit architecture on their Super Computers. Practically, it was made for Commercial purposes at the beginning of 2000 and was first introduced by Microsoft on their Windows XP Operating systems. Let us get into the article and get to know how to make a 64 bit Windows 10 to install a 32 bit software or application.
Jump to:
Main Difference between 32 bit and 64 bit Architecture:
The major difference between 32 bit and 64 bit is that their capacity to handle more data at a given time. 64 bit architecture can store more values, more memory address and increased physical memory. The virtual memory of a 32 bit system is 4GB whereas a 64 bit have as high as 16 TB. It is really a big jump. System Cache available on a 64 bit architecture is 256 Terabytes but a 32 bit has just 16 terabytes. Overall, 64 bit architecture is way better in performance and reliability and stability and tops the list.
Install 32 bit Software on 64 bit Windows 10- Easy Steps:
- Click on the Start and search for Control Panel.
- Choose Uninstall a Program from Programs menu of Control Panel.
Uninstall a program
- Go to Turn Windows features on or off.
Turn Windows Features on or off
- Windows features on or off dialog box will pop-up now.
- Scroll and Locate Internet Information Services(IIS) Manager.
Locate Internet Information Services(IIS)
- Enable Internet Information Services(IIS) Manager.
Enable IIS
- Windows will download several files and update the process. Hence kindly wait till it applies all the Changes.
Features Enabled
- Now that the Internet Information Services(IIS) Manager is enabled, go to Install 32 bit Software on 64 bit Windows and search for IIS.
Search for IIS
- Once you locate the app, Click on that and open it.
- On the Left Pane, under the Connections, Dropdown the option as shown in the following image.
Internet Information Services(IIS)
- Select Application Pools from the dropdown and then select DefaultAppPool.
DefaultappPool
- Right click on the DefaultAppPool as shown in the image below and Click on the option “Advanced Settings“.
Advanced Settings
- Advanced Settings pop-up will appear now. Under the General option, you will find “Enable 32 bit applications“.
Advanced Settings pop-up
- Dropdown the options area that is available for 32 bit applications and change it from False to True as shown in the below image.
Select True
- Finally, Click OK.
Click OK
- Installing 32 Bit Software on 64 bit Windows 10 is now enabled. You can start installing your 32 bit applications now.
Conclusion of the Article:
Though this article covers the topic of using a 32 bit software on a 64 bit Windows 10, it is suggested to move to 64 bit architecture because of its Better Data handling and security. Moreover, we are in the transition period of this major change and it is a fact that we will eventually move on to 64 bit architectures. If you are running a 64 bit operating system, then a 64 bit application will be more stable than a 32 bit app.
If you have any questions, please leave us a comment. Stay tuned for more awesome posts on the latest technology.