Download presentation
Presentation is loading. Please wait.
2
Rona Lustig Senior Consultant Microsoft Consulting Services Ronalus@microsoft.com
3
Development Tools for the job How long is an integer? Where am I? WoW Mix and match Migration Where to go from here?
4
Tools for the Job Visual Studio 2003 –.net framework 1.0, 1.1 Platform SDK –Cross compile Visual Studio 2005 –.net framework 2.0
5
Whidbey PSDK
6
How long is an integer? int, long – 32 bit (4 Byte) Ptr – 64 bit (8 Byte) Polymorphic data types –LRESULT, HANDLE, LPARAM, WPARAM –size_t intptr_t uintptr_t, … Don’t assume type sizes or data location –sizeof and FIELD_OFFSET are your friends
7
Alignment padding Win64 Win32 struct node { char *l; char s; struct tnode *prev; int i; struct node *next; } 48121620242832364812162024283236 Win64 4812162024283236 20% off
8
PoGO
9
Where am I? A 32-bit application can detect whether it is running under WOW64 by calling the IsWow64Process function. IsWow64Process It can obtain additional information about the processor using the GetNativeSystemInfo function. GetNativeSystemInfo
10
IsWow64Process System.environment
11
WoW! Windows on Windows 64 (WOW64) Preventing file and registry collisions Support cut and paste and COM In-process –32-bit processes CANNOT load 64-bit DLLs –64-bit processes CANNOT load 32-bit DLLs
12
Processes The registry The file system
13
Mix and match In-process –32-bit processes CANNOT load 64-bit DLLs –64-bit processes CANNOT load 32-bit DLLs Remote debugging –VS is 32bit –Your app may be 64 bit –How does VS interact with your app?
14
Visual Studio And runtime
15
No No Yes Yes Yes PE32 ILONL Y Not 32BITREQUIRED PE32+ launches 64bit Launches in WoW64 Remap to PE32+ and launch 64bit Launches in WoW64
16
Migration Need 64bit support for all components? Source unavailable? Dependency! –A 64bit app cannot invoke a 32bit DLL –Use EXE instead? Port both? …
17
General Porting Guidelines Testing –All supported environments –Interoperability –Different memory configurations Treat your 64-bit version As a separate product release
18
Installer Applications NO 16 bit installer applications supported –Except for recognized InstallShield and ACME installers –16 bit setup bootstraps not supported 32-bit installer apps cannot load and register 64- bit DLLs and vice versa –Create a 64-bit process to register 64-bit DLL –Communicate using RPC Same process applies to 64-bit installers
19
Where to go from here?
20
http://msdn.microsoft.com/visualc/using/building/64bit/default.aspx
21
http://www.microsoft.com/windowsxp/64bit/techinfo/developers.asp
22
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnanchor/html/64bitwindows.asp
23
© 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.