SlideShare a Scribd company logo
1 of 4
Download to read offline
64-bit
Author: Andrey Karpov
Date: 01.03.2013
In this article, I've collected a huge amount of links all of which could prove potentially useful to software
developers who are getting acquainted with 64-bit world. In general, we will cover C/C++ languages, but I
am sure, that developers from other languages will discover a lot of interesting stuff here as well.
The definition of a 64-bit system and overview of its evolution
1. 32-bit and 64-bit explained.
2. John R. Mashey. The Long Road to 64 Bits.
3. Wikipedia. 64-bit computing.
Architecture of 64-bit systems
1. Sachin R Sangoi. The 64 bit OS Architecture.
2. Andrey Karpov. AMD64 (EM64T) architecture.
3. Wikipedia. Itanium (IA-64).
4. Wikipedia. x86-64 (x64, AMD64, Intel64).
5. Jeremy Gordon. Writing 64-bit programs.
6. Eric Palmer. CPUID for x64 Platforms and Microsoft Visual Studio* .NET 2005.
7. Stack frame layout on x86-64.
8. Mike Becker. Accessing 32-bit DLLs from 64-bit code.
9. The history of calling conventions, part 5: amd64.
10. Andrey Karpov. The reasons why 64-bit programs require more stack memory.
11. Behind Windows x64′s 44-bit Virtual Memory Addressing Limit.
12. Knowledge Base. What advantages do 64-bit processors have over 32-bit ones?
13. Knowledge Base. Why do 64-bit applications work faster than 32-bit ones?
Data model, types' sizes, alignment
1. Data model.
2. 64-Bit Programming Models: Why LP64?
3. Why did the Win64 team choose the LLP64 model?
4. Kang Su Gatlin. Windows Data Alignment on IPF, x86, and x64.
5. Andrey Karpov. About size_t and ptrdiff_t.
6. Dan Saks. Why size_t matters.
Course on 64-bit application development
1. What 64-bit systems are.
2. Support of 32-bit applications.
3. Porting code to 64-bit systems. The pros and cons.
4. Creating the 64-bit configuration.
5. Building a 64-bit application.
6. Errors in 64-bit code.
7. The issues of detecting 64-bit errors.
8. Static analysis for detecting 64-bit errors.
9. Pattern 01. Magic numbers.
10. Pattern 02. Functions with variable number of arguments.
11. Pattern 03. Shift operations.
12. Pattern 04. Virtual functions.
13. Pattern 05. Address arithmetic.
14. Pattern 06. Changing an array's type.
15. Pattern 07. Pointer packing.
16. Pattern 08. Memsize-types in unions.
17. Pattern 09. Mixed arithmetic.
18. Pattern 10. Storage of integer values in double.
19. Pattern 11. Serialization and data interchange.
20. Pattern 12. Exceptions.
21. Pattern 13. Data alignment.
22. Pattern 14. Overloaded functions.
23. Pattern 15. Growth of structures' sizes.
24. Phantom errors.
25. Working with patterns of 64-bit errors in practice.
26. Optimization of 64-bit programs.
27. Peculiarities of creating installers for a 64-bit environment.
28. Estimating the cost of 64-bit migration of C/C++ applications.
Various articles
1. Andrey Karpov. A Collection of Examples of 64-bit Errors in Real Programs.
2. 64-bit ODBC.
3. Migrating 32-bit Managed Code to 64-bit.
4. Checklist for 64-bit Microsoft Windows Drivers.
5. Andrey Karpov. A 64-bit horse that can count.
6. Andrey Karpov. Problems of testing 64-bit applications.
7. Andrey Karpov. 64-bit programs and floating-point calculations.
Building the applications
1. Andrey Karpov. Seven Steps of Migrating a Program to a 64-bit System
2. Bojan Komazec. 32-bit and 64-bit versions of Windows C++ application.
3. Daniel Pistelli. Moving to Windows Vista x64.
4. Knowledge Base. The warnings C4311 and C4312 generated by the compiler when using the /Wp64
switch
5. Knowledge Base. How to compile a 64-bit application with using Visual C++ Express
2005/2008/2010?
6. Knowledge Base. A common error occurring when compiling a 64-bit application: error C2440,
OnTimer
7. Knowledge Base. Strange errors occurring when compiling the 64-bit version of an application, error
C2664
8. Knowledge Base. A common error occurring when compiling a 64-bit application: error C4235,
Assembler
9. Knowledge Base. How can I know if the DWORD_PTR type is defined using ifdef?
10. Knowledge Base. Why does not Visual C++ support the inline assembler for Intel 64 and IA-64
anymore?
11. Knowledge Base. Warning C4267 in the expression unsigned n = str.find(substr)
12. Knowledge Base. How to check if a 64-bit project is being built in Visual Studio using #ifdef
13. Knowledge Base. Using _WIN64/WIN64 macros
Miscellaneous
1. Andrey Karpov. A nice 64-bit error in C.
2. Knowledge Base. How to correctly print a value of the types __int64, size_t, and ptrdiff_t
3. Knowledge Base. Is it possible to use more than 2 Gbytes of memory in a 32-bit program launched
in the 64-bit Windows?
4. Knowledge Base. How to correctly cast a pointer to int in a 64-bit application?
5. Knowledge Base. How can a 32-bit program detect that it is launched in a 64-bit Windows?
6. Knowledge Base. Functions of the ntohl/htonl class and 64-bit values
7. Knowledge Base. Difference between %p and %x
8. Knowledge Base. Why is the value of the ProgramFiles environment variable replaced with that of
ProgramFiles(x86)?
9. Knowledge Base. Is there a way to make the type size_t 32-bit in a 64-bit program?
10. Knowledge Base. Is size_t a standard type in C++? And in C?
11. Knowledge Base. Why does Windows put 64-bit units into System32?
12. Knowledge Base. WOW6432Node and API-functions RegOpenKeyEx / RegEnumKeyEx
13. Knowledge Base. Why does WoW64 use register and file system redirection?
14. Knowledge Base. Confusion of WPARAM with UINT, and LPARAM with LONG
15. Knowledge Base. How much memory can an application access in Win32 and Win64?
16. Knowledge Base. What can I use instead of "int 3" instruction in a 64-bit application?
17. Knowledge Base. Can I use 32-bit pointers in a 64-bit application?
18. Knowledge Base. How can I find out in a 32-bit application what 64-bit processes are launched?
19. Knowledge Base. What can I use instead of rundll32.exe to run 64-bit DLL?
20. Knowledge Base. Why is it so hard to create a 64-bit version of an application?
21. Knowledge Base. How can I find out in Win64 how many processor cores there are in the system?
22. Knowledge Base. Why do 64-bit operating systems use only 48-bit addresses for addressing?
23. Knowledge Base. What is the POINTER_32 macro?
24. Knowledge Base. What does the pointer size depend on in C++ on different platforms?
My invitations
1. I invite you to follow our twitter @Code_Analysis or Viva64 subreddit. Subjects: C/C++, 64-bit
systems, testing, algorithms and other interesting programming stuff.
2. I offer you to download the trial of PVS-Studio static code analyzer to ensure the reliability of your
64-bit applications.

More Related Content

Viewers also liked

How we test the code analyzer
How we test the code analyzerHow we test the code analyzer
How we test the code analyzerPVS-Studio
 
Comparing the general static analysis in Visual Studio 2010 and PVS-Studio by...
Comparing the general static analysis in Visual Studio 2010 and PVS-Studio by...Comparing the general static analysis in Visual Studio 2010 and PVS-Studio by...
Comparing the general static analysis in Visual Studio 2010 and PVS-Studio by...PVS-Studio
 
The compiler is to blame for everything
The compiler is to blame for everythingThe compiler is to blame for everything
The compiler is to blame for everythingPVS-Studio
 
Checking OpenCV with PVS-Studio
Checking OpenCV with PVS-StudioChecking OpenCV with PVS-Studio
Checking OpenCV with PVS-StudioPVS-Studio
 
Cppcheck and PVS-Studio compared
Cppcheck and PVS-Studio comparedCppcheck and PVS-Studio compared
Cppcheck and PVS-Studio comparedPVS-Studio
 
How to make fewer errors at the stage of code writing. Part N4.
How to make fewer errors at the stage of code writing. Part N4.How to make fewer errors at the stage of code writing. Part N4.
How to make fewer errors at the stage of code writing. Part N4.PVS-Studio
 
100 bugs in Open Source C/C++ projects
100 bugs in Open Source C/C++ projects100 bugs in Open Source C/C++ projects
100 bugs in Open Source C/C++ projectsPVS-Studio
 
Visual Studio Automation Object Model. EnvDTE interfaces
Visual Studio Automation Object Model. EnvDTE interfacesVisual Studio Automation Object Model. EnvDTE interfaces
Visual Studio Automation Object Model. EnvDTE interfacesPVS-Studio
 
PVS-Studio vs Chromium
PVS-Studio vs ChromiumPVS-Studio vs Chromium
PVS-Studio vs ChromiumPVS-Studio
 
Regular use of static code analysis in team development
Regular use of static code analysis in team developmentRegular use of static code analysis in team development
Regular use of static code analysis in team developmentPVS-Studio
 
PVS-Studio: analyzing ReactOS's code
PVS-Studio: analyzing ReactOS's codePVS-Studio: analyzing ReactOS's code
PVS-Studio: analyzing ReactOS's codePVS-Studio
 
How to make fewer errors at the stage of code writing. Part N3.
How to make fewer errors at the stage of code writing. Part N3.How to make fewer errors at the stage of code writing. Part N3.
How to make fewer errors at the stage of code writing. Part N3.PVS-Studio
 
How to complement TDD with static analysis
How to complement TDD with static analysisHow to complement TDD with static analysis
How to complement TDD with static analysisPVS-Studio
 
Visual Studio commands
Visual Studio commandsVisual Studio commands
Visual Studio commandsPVS-Studio
 
Lesson 24. Phantom errors
Lesson 24. Phantom errorsLesson 24. Phantom errors
Lesson 24. Phantom errorsPVS-Studio
 
Viva64: working up of 64-bit applications
Viva64: working up of 64-bit applicationsViva64: working up of 64-bit applications
Viva64: working up of 64-bit applicationsPVS-Studio
 

Viewers also liked (16)

How we test the code analyzer
How we test the code analyzerHow we test the code analyzer
How we test the code analyzer
 
Comparing the general static analysis in Visual Studio 2010 and PVS-Studio by...
Comparing the general static analysis in Visual Studio 2010 and PVS-Studio by...Comparing the general static analysis in Visual Studio 2010 and PVS-Studio by...
Comparing the general static analysis in Visual Studio 2010 and PVS-Studio by...
 
The compiler is to blame for everything
The compiler is to blame for everythingThe compiler is to blame for everything
The compiler is to blame for everything
 
Checking OpenCV with PVS-Studio
Checking OpenCV with PVS-StudioChecking OpenCV with PVS-Studio
Checking OpenCV with PVS-Studio
 
Cppcheck and PVS-Studio compared
Cppcheck and PVS-Studio comparedCppcheck and PVS-Studio compared
Cppcheck and PVS-Studio compared
 
How to make fewer errors at the stage of code writing. Part N4.
How to make fewer errors at the stage of code writing. Part N4.How to make fewer errors at the stage of code writing. Part N4.
How to make fewer errors at the stage of code writing. Part N4.
 
100 bugs in Open Source C/C++ projects
100 bugs in Open Source C/C++ projects100 bugs in Open Source C/C++ projects
100 bugs in Open Source C/C++ projects
 
Visual Studio Automation Object Model. EnvDTE interfaces
Visual Studio Automation Object Model. EnvDTE interfacesVisual Studio Automation Object Model. EnvDTE interfaces
Visual Studio Automation Object Model. EnvDTE interfaces
 
PVS-Studio vs Chromium
PVS-Studio vs ChromiumPVS-Studio vs Chromium
PVS-Studio vs Chromium
 
Regular use of static code analysis in team development
Regular use of static code analysis in team developmentRegular use of static code analysis in team development
Regular use of static code analysis in team development
 
PVS-Studio: analyzing ReactOS's code
PVS-Studio: analyzing ReactOS's codePVS-Studio: analyzing ReactOS's code
PVS-Studio: analyzing ReactOS's code
 
How to make fewer errors at the stage of code writing. Part N3.
How to make fewer errors at the stage of code writing. Part N3.How to make fewer errors at the stage of code writing. Part N3.
How to make fewer errors at the stage of code writing. Part N3.
 
How to complement TDD with static analysis
How to complement TDD with static analysisHow to complement TDD with static analysis
How to complement TDD with static analysis
 
Visual Studio commands
Visual Studio commandsVisual Studio commands
Visual Studio commands
 
Lesson 24. Phantom errors
Lesson 24. Phantom errorsLesson 24. Phantom errors
Lesson 24. Phantom errors
 
Viva64: working up of 64-bit applications
Viva64: working up of 64-bit applicationsViva64: working up of 64-bit applications
Viva64: working up of 64-bit applications
 

Similar to 64-bit

Lesson 6. Errors in 64-bit code
Lesson 6. Errors in 64-bit codeLesson 6. Errors in 64-bit code
Lesson 6. Errors in 64-bit codePVS-Studio
 
A collection of examples of 64 bit errors in real programs
A collection of examples of 64 bit errors in real programsA collection of examples of 64 bit errors in real programs
A collection of examples of 64 bit errors in real programsMichael Scovetta
 
Lesson 22. Pattern 14. Overloaded functions
Lesson 22. Pattern 14. Overloaded functionsLesson 22. Pattern 14. Overloaded functions
Lesson 22. Pattern 14. Overloaded functionsPVS-Studio
 
The forgotten problems of 64-bit programs development
The forgotten problems of 64-bit programs developmentThe forgotten problems of 64-bit programs development
The forgotten problems of 64-bit programs developmentPVS-Studio
 
A Collection of Examples of 64-bit Errors in Real Programs
A Collection of Examples of 64-bit Errors in Real ProgramsA Collection of Examples of 64-bit Errors in Real Programs
A Collection of Examples of 64-bit Errors in Real ProgramsPVS-Studio
 
64 bits, Wp64, Visual Studio 2008, Viva64 and all the rest...
64 bits, Wp64, Visual Studio 2008, Viva64 and all the rest...64 bits, Wp64, Visual Studio 2008, Viva64 and all the rest...
64 bits, Wp64, Visual Studio 2008, Viva64 and all the rest...Andrey Karpov
 
A Collection of Examples of 64-bit Errors in Real Programs
A Collection of Examples of 64-bit Errors in Real ProgramsA Collection of Examples of 64-bit Errors in Real Programs
A Collection of Examples of 64-bit Errors in Real ProgramsAndrey Karpov
 
Comparing capabilities of PVS-Studio and Visual Studio 2010 in detecting defe...
Comparing capabilities of PVS-Studio and Visual Studio 2010 in detecting defe...Comparing capabilities of PVS-Studio and Visual Studio 2010 in detecting defe...
Comparing capabilities of PVS-Studio and Visual Studio 2010 in detecting defe...PVS-Studio
 
Seven Steps of Migrating a Program to a 64-bit System
Seven Steps of Migrating a Program to a 64-bit SystemSeven Steps of Migrating a Program to a 64-bit System
Seven Steps of Migrating a Program to a 64-bit SystemAndrey Karpov
 
Seven Steps of Migrating a Program to a 64-bit System
Seven Steps of Migrating a Program to a 64-bit SystemSeven Steps of Migrating a Program to a 64-bit System
Seven Steps of Migrating a Program to a 64-bit SystemPVS-Studio
 
Undefined behavior is closer than you think
Undefined behavior is closer than you thinkUndefined behavior is closer than you think
Undefined behavior is closer than you thinkAndrey Karpov
 
Static code analysis for verification of the 64-bit applications
Static code analysis for verification of the 64-bit applicationsStatic code analysis for verification of the 64-bit applications
Static code analysis for verification of the 64-bit applicationsPVS-Studio
 
Lesson 19. Pattern 11. Serialization and data interchange
Lesson 19. Pattern 11. Serialization and data interchangeLesson 19. Pattern 11. Serialization and data interchange
Lesson 19. Pattern 11. Serialization and data interchangePVS-Studio
 
Safety of 64-bit code
Safety of 64-bit codeSafety of 64-bit code
Safety of 64-bit codePVS-Studio
 
Comparison of analyzers' diagnostic possibilities at checking 64-bit code
Comparison of analyzers' diagnostic possibilities at checking 64-bit codeComparison of analyzers' diagnostic possibilities at checking 64-bit code
Comparison of analyzers' diagnostic possibilities at checking 64-bit codePVS-Studio
 
PVS-Studio, a solution for developers of modern resource-intensive applications
PVS-Studio, a solution for developers of modern resource-intensive applicationsPVS-Studio, a solution for developers of modern resource-intensive applications
PVS-Studio, a solution for developers of modern resource-intensive applicationsPVS-Studio
 
Optimization of 64-bit programs
Optimization of 64-bit programsOptimization of 64-bit programs
Optimization of 64-bit programsPVS-Studio
 
Driver Development for Windows 64-bit
Driver Development for Windows 64-bitDriver Development for Windows 64-bit
Driver Development for Windows 64-bitPVS-Studio
 
Monitoring a program that monitors computer networks
Monitoring a program that monitors computer networksMonitoring a program that monitors computer networks
Monitoring a program that monitors computer networksAndrey Karpov
 

Similar to 64-bit (20)

Lesson 6. Errors in 64-bit code
Lesson 6. Errors in 64-bit codeLesson 6. Errors in 64-bit code
Lesson 6. Errors in 64-bit code
 
A collection of examples of 64 bit errors in real programs
A collection of examples of 64 bit errors in real programsA collection of examples of 64 bit errors in real programs
A collection of examples of 64 bit errors in real programs
 
Lesson 22. Pattern 14. Overloaded functions
Lesson 22. Pattern 14. Overloaded functionsLesson 22. Pattern 14. Overloaded functions
Lesson 22. Pattern 14. Overloaded functions
 
The forgotten problems of 64-bit programs development
The forgotten problems of 64-bit programs developmentThe forgotten problems of 64-bit programs development
The forgotten problems of 64-bit programs development
 
A Collection of Examples of 64-bit Errors in Real Programs
A Collection of Examples of 64-bit Errors in Real ProgramsA Collection of Examples of 64-bit Errors in Real Programs
A Collection of Examples of 64-bit Errors in Real Programs
 
64 bits, Wp64, Visual Studio 2008, Viva64 and all the rest...
64 bits, Wp64, Visual Studio 2008, Viva64 and all the rest...64 bits, Wp64, Visual Studio 2008, Viva64 and all the rest...
64 bits, Wp64, Visual Studio 2008, Viva64 and all the rest...
 
A Collection of Examples of 64-bit Errors in Real Programs
A Collection of Examples of 64-bit Errors in Real ProgramsA Collection of Examples of 64-bit Errors in Real Programs
A Collection of Examples of 64-bit Errors in Real Programs
 
Comparing capabilities of PVS-Studio and Visual Studio 2010 in detecting defe...
Comparing capabilities of PVS-Studio and Visual Studio 2010 in detecting defe...Comparing capabilities of PVS-Studio and Visual Studio 2010 in detecting defe...
Comparing capabilities of PVS-Studio and Visual Studio 2010 in detecting defe...
 
Seven Steps of Migrating a Program to a 64-bit System
Seven Steps of Migrating a Program to a 64-bit SystemSeven Steps of Migrating a Program to a 64-bit System
Seven Steps of Migrating a Program to a 64-bit System
 
Seven Steps of Migrating a Program to a 64-bit System
Seven Steps of Migrating a Program to a 64-bit SystemSeven Steps of Migrating a Program to a 64-bit System
Seven Steps of Migrating a Program to a 64-bit System
 
Undefined behavior is closer than you think
Undefined behavior is closer than you thinkUndefined behavior is closer than you think
Undefined behavior is closer than you think
 
64 bit arch
64 bit arch64 bit arch
64 bit arch
 
Static code analysis for verification of the 64-bit applications
Static code analysis for verification of the 64-bit applicationsStatic code analysis for verification of the 64-bit applications
Static code analysis for verification of the 64-bit applications
 
Lesson 19. Pattern 11. Serialization and data interchange
Lesson 19. Pattern 11. Serialization and data interchangeLesson 19. Pattern 11. Serialization and data interchange
Lesson 19. Pattern 11. Serialization and data interchange
 
Safety of 64-bit code
Safety of 64-bit codeSafety of 64-bit code
Safety of 64-bit code
 
Comparison of analyzers' diagnostic possibilities at checking 64-bit code
Comparison of analyzers' diagnostic possibilities at checking 64-bit codeComparison of analyzers' diagnostic possibilities at checking 64-bit code
Comparison of analyzers' diagnostic possibilities at checking 64-bit code
 
PVS-Studio, a solution for developers of modern resource-intensive applications
PVS-Studio, a solution for developers of modern resource-intensive applicationsPVS-Studio, a solution for developers of modern resource-intensive applications
PVS-Studio, a solution for developers of modern resource-intensive applications
 
Optimization of 64-bit programs
Optimization of 64-bit programsOptimization of 64-bit programs
Optimization of 64-bit programs
 
Driver Development for Windows 64-bit
Driver Development for Windows 64-bitDriver Development for Windows 64-bit
Driver Development for Windows 64-bit
 
Monitoring a program that monitors computer networks
Monitoring a program that monitors computer networksMonitoring a program that monitors computer networks
Monitoring a program that monitors computer networks
 

Recently uploaded

Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 

Recently uploaded (20)

E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 

64-bit

  • 1. 64-bit Author: Andrey Karpov Date: 01.03.2013 In this article, I've collected a huge amount of links all of which could prove potentially useful to software developers who are getting acquainted with 64-bit world. In general, we will cover C/C++ languages, but I am sure, that developers from other languages will discover a lot of interesting stuff here as well. The definition of a 64-bit system and overview of its evolution 1. 32-bit and 64-bit explained. 2. John R. Mashey. The Long Road to 64 Bits. 3. Wikipedia. 64-bit computing. Architecture of 64-bit systems 1. Sachin R Sangoi. The 64 bit OS Architecture. 2. Andrey Karpov. AMD64 (EM64T) architecture. 3. Wikipedia. Itanium (IA-64). 4. Wikipedia. x86-64 (x64, AMD64, Intel64). 5. Jeremy Gordon. Writing 64-bit programs. 6. Eric Palmer. CPUID for x64 Platforms and Microsoft Visual Studio* .NET 2005. 7. Stack frame layout on x86-64. 8. Mike Becker. Accessing 32-bit DLLs from 64-bit code. 9. The history of calling conventions, part 5: amd64. 10. Andrey Karpov. The reasons why 64-bit programs require more stack memory. 11. Behind Windows x64′s 44-bit Virtual Memory Addressing Limit. 12. Knowledge Base. What advantages do 64-bit processors have over 32-bit ones? 13. Knowledge Base. Why do 64-bit applications work faster than 32-bit ones? Data model, types' sizes, alignment 1. Data model. 2. 64-Bit Programming Models: Why LP64? 3. Why did the Win64 team choose the LLP64 model? 4. Kang Su Gatlin. Windows Data Alignment on IPF, x86, and x64. 5. Andrey Karpov. About size_t and ptrdiff_t. 6. Dan Saks. Why size_t matters. Course on 64-bit application development 1. What 64-bit systems are.
  • 2. 2. Support of 32-bit applications. 3. Porting code to 64-bit systems. The pros and cons. 4. Creating the 64-bit configuration. 5. Building a 64-bit application. 6. Errors in 64-bit code. 7. The issues of detecting 64-bit errors. 8. Static analysis for detecting 64-bit errors. 9. Pattern 01. Magic numbers. 10. Pattern 02. Functions with variable number of arguments. 11. Pattern 03. Shift operations. 12. Pattern 04. Virtual functions. 13. Pattern 05. Address arithmetic. 14. Pattern 06. Changing an array's type. 15. Pattern 07. Pointer packing. 16. Pattern 08. Memsize-types in unions. 17. Pattern 09. Mixed arithmetic. 18. Pattern 10. Storage of integer values in double. 19. Pattern 11. Serialization and data interchange. 20. Pattern 12. Exceptions. 21. Pattern 13. Data alignment. 22. Pattern 14. Overloaded functions. 23. Pattern 15. Growth of structures' sizes. 24. Phantom errors. 25. Working with patterns of 64-bit errors in practice. 26. Optimization of 64-bit programs. 27. Peculiarities of creating installers for a 64-bit environment. 28. Estimating the cost of 64-bit migration of C/C++ applications. Various articles 1. Andrey Karpov. A Collection of Examples of 64-bit Errors in Real Programs. 2. 64-bit ODBC. 3. Migrating 32-bit Managed Code to 64-bit. 4. Checklist for 64-bit Microsoft Windows Drivers. 5. Andrey Karpov. A 64-bit horse that can count. 6. Andrey Karpov. Problems of testing 64-bit applications. 7. Andrey Karpov. 64-bit programs and floating-point calculations. Building the applications 1. Andrey Karpov. Seven Steps of Migrating a Program to a 64-bit System 2. Bojan Komazec. 32-bit and 64-bit versions of Windows C++ application. 3. Daniel Pistelli. Moving to Windows Vista x64.
  • 3. 4. Knowledge Base. The warnings C4311 and C4312 generated by the compiler when using the /Wp64 switch 5. Knowledge Base. How to compile a 64-bit application with using Visual C++ Express 2005/2008/2010? 6. Knowledge Base. A common error occurring when compiling a 64-bit application: error C2440, OnTimer 7. Knowledge Base. Strange errors occurring when compiling the 64-bit version of an application, error C2664 8. Knowledge Base. A common error occurring when compiling a 64-bit application: error C4235, Assembler 9. Knowledge Base. How can I know if the DWORD_PTR type is defined using ifdef? 10. Knowledge Base. Why does not Visual C++ support the inline assembler for Intel 64 and IA-64 anymore? 11. Knowledge Base. Warning C4267 in the expression unsigned n = str.find(substr) 12. Knowledge Base. How to check if a 64-bit project is being built in Visual Studio using #ifdef 13. Knowledge Base. Using _WIN64/WIN64 macros Miscellaneous 1. Andrey Karpov. A nice 64-bit error in C. 2. Knowledge Base. How to correctly print a value of the types __int64, size_t, and ptrdiff_t 3. Knowledge Base. Is it possible to use more than 2 Gbytes of memory in a 32-bit program launched in the 64-bit Windows? 4. Knowledge Base. How to correctly cast a pointer to int in a 64-bit application? 5. Knowledge Base. How can a 32-bit program detect that it is launched in a 64-bit Windows? 6. Knowledge Base. Functions of the ntohl/htonl class and 64-bit values 7. Knowledge Base. Difference between %p and %x 8. Knowledge Base. Why is the value of the ProgramFiles environment variable replaced with that of ProgramFiles(x86)? 9. Knowledge Base. Is there a way to make the type size_t 32-bit in a 64-bit program? 10. Knowledge Base. Is size_t a standard type in C++? And in C? 11. Knowledge Base. Why does Windows put 64-bit units into System32? 12. Knowledge Base. WOW6432Node and API-functions RegOpenKeyEx / RegEnumKeyEx 13. Knowledge Base. Why does WoW64 use register and file system redirection? 14. Knowledge Base. Confusion of WPARAM with UINT, and LPARAM with LONG 15. Knowledge Base. How much memory can an application access in Win32 and Win64? 16. Knowledge Base. What can I use instead of "int 3" instruction in a 64-bit application? 17. Knowledge Base. Can I use 32-bit pointers in a 64-bit application? 18. Knowledge Base. How can I find out in a 32-bit application what 64-bit processes are launched? 19. Knowledge Base. What can I use instead of rundll32.exe to run 64-bit DLL? 20. Knowledge Base. Why is it so hard to create a 64-bit version of an application? 21. Knowledge Base. How can I find out in Win64 how many processor cores there are in the system? 22. Knowledge Base. Why do 64-bit operating systems use only 48-bit addresses for addressing? 23. Knowledge Base. What is the POINTER_32 macro?
  • 4. 24. Knowledge Base. What does the pointer size depend on in C++ on different platforms? My invitations 1. I invite you to follow our twitter @Code_Analysis or Viva64 subreddit. Subjects: C/C++, 64-bit systems, testing, algorithms and other interesting programming stuff. 2. I offer you to download the trial of PVS-Studio static code analyzer to ensure the reliability of your 64-bit applications.