﻿# Win64

The term Win64 is used in various contexts\.

By Win64 a family of 64\-bit Windows operating systems for the architectures [x86\-64](https://pvs-studio.com/en/blog/terms/0059/) \(AMD64\) and [IA\-64](https://pvs-studio.com/en/blog/terms/0017/) \(Itanium\) is understood\.

When one speaks about a Win64 application, you should understand that one means a 64\-bit program to be executed in the 64\-bit environment and that has the [LLP64](https://pvs-studio.com/en/blog/terms/0026/) [data model](https://pvs-studio.com/en/blog/terms/0012/)\. A Win64\-program cannot be launched in the 32\-bit Windows version\.

By Win64 a 64\-bit API is also understood which is provided by the 64\-bit Windows operation system\.

There is a subsystem [WoW64](https://pvs-studio.com/en/blog/terms/0056/) on new 64\-bit Windows systems to provide compatibility with obsolete 32\-bit applications\. The system translates the calls of the 32\-bit API into the calls of the 64\-bit API, redirects requests when working with the register and files and performs some other functions\.

Usually a [Win32](https://pvs-studio.com/en/blog/terms/0054/) program can be recompiled in the 64\-bit version after some slight modifications\. The project fragments written in inline assembler may appear the most troublesome at the stage of compilation\. It is very important to provide a search of hidden defects in the code after building the 64\-bit version\. To detect such defects you may use the tool Viva64 included into [PVS\-Studio](https://pvs-studio.com/en/pvs-studio/) we are developing\.

## References

1. Wikipedia\. [Windows API](https://en.wikipedia.org/wiki/Windows_API)\.
1. Migrate Using Win32/Win64\. [Chapter 1: Introduction to Win32/Win64](https://technet.microsoft.com/en-us/library/bb496995.aspx)\.
1. Lessons on development of 64\-bit C/C\+\+ applications\. [Lesson 06\. Errors in 64\-bit code](https://pvs-studio.com/en/blog/lessons/0006/)\. 
1. [All about 64\-bit](https://pvs-studio.com/en/blog/posts/cpp/0188/)\.