How to port a 32 bit application on 64 bit OS
-
Hi friends, I developed a 32 bit application around 2 years back. It could get installed (setup created using Inno Setup) on XP, Vista and Windows 7 32 bit. And it runs without any problem. But now people have started shifting to 64 bit OSes. One of my friend tried to install my application on 64 bit Windows 7, but he could not install. Then he just copied binaries of my application on C drive (C:\MyApp directory). But then again, it didn't run. I don't have any 64 bit machine and so could not try to run my application there. Please let me know, do I need to make changes either in installer or in my code so that my application start working on 64 bit OS? Here is my application detail: 1 Currently my application is installed in C:\Windows\System32 directory. 2 My application consists of - one C++ dll (32-bit), - C++ COM based ATL Service (32-bit) (it is registered with -RegServer and -Service command line parameters), - 3 .net dlls/assemblies and - one .net exe (the main exe). While creating installer, do I need to make changes so that application could run on WOW platform? (like copying all above binaries in system32 or system64 directory)? My application plays with all registry hives (HKEY_LOCAL_MACHINE, HKEY_CURRENT_USER, HKEY_CLASSES_ROOT and HKEY_UUSERS). Do I need some changes for access/changes to all these registry hives? Please help me so that with minimum changes may application become able to run on all 64 bit OSes. Thanks in Advance
-
Hi friends, I developed a 32 bit application around 2 years back. It could get installed (setup created using Inno Setup) on XP, Vista and Windows 7 32 bit. And it runs without any problem. But now people have started shifting to 64 bit OSes. One of my friend tried to install my application on 64 bit Windows 7, but he could not install. Then he just copied binaries of my application on C drive (C:\MyApp directory). But then again, it didn't run. I don't have any 64 bit machine and so could not try to run my application there. Please let me know, do I need to make changes either in installer or in my code so that my application start working on 64 bit OS? Here is my application detail: 1 Currently my application is installed in C:\Windows\System32 directory. 2 My application consists of - one C++ dll (32-bit), - C++ COM based ATL Service (32-bit) (it is registered with -RegServer and -Service command line parameters), - 3 .net dlls/assemblies and - one .net exe (the main exe). While creating installer, do I need to make changes so that application could run on WOW platform? (like copying all above binaries in system32 or system64 directory)? My application plays with all registry hives (HKEY_LOCAL_MACHINE, HKEY_CURRENT_USER, HKEY_CLASSES_ROOT and HKEY_UUSERS). Do I need some changes for access/changes to all these registry hives? Please help me so that with minimum changes may application become able to run on all 64 bit OSes. Thanks in Advance
I'm not sure if it will help but I had some problems with some .net apps on w64. A common example is using Oledb to query an excel file, using the JET engine. That will not work on 64 bit versions of windows, unless the app is specifcally compiled to target x86. Try specifically compiling your app to target x86. As I'm sure you know, by default it compiles to all platforms(ms ones) and it will resolve at runtime if it's x86 or x64. Again I'm not sure if it will help but it doesn't hurt to try. That if you don't know that the C++ dlls and COM service is the cause. if you know that then my comment is just a waste of space. Hope the hammsters won't revolt against me. After all it's holidays times :)
All the best, Dan
-
Hi friends, I developed a 32 bit application around 2 years back. It could get installed (setup created using Inno Setup) on XP, Vista and Windows 7 32 bit. And it runs without any problem. But now people have started shifting to 64 bit OSes. One of my friend tried to install my application on 64 bit Windows 7, but he could not install. Then he just copied binaries of my application on C drive (C:\MyApp directory). But then again, it didn't run. I don't have any 64 bit machine and so could not try to run my application there. Please let me know, do I need to make changes either in installer or in my code so that my application start working on 64 bit OS? Here is my application detail: 1 Currently my application is installed in C:\Windows\System32 directory. 2 My application consists of - one C++ dll (32-bit), - C++ COM based ATL Service (32-bit) (it is registered with -RegServer and -Service command line parameters), - 3 .net dlls/assemblies and - one .net exe (the main exe). While creating installer, do I need to make changes so that application could run on WOW platform? (like copying all above binaries in system32 or system64 directory)? My application plays with all registry hives (HKEY_LOCAL_MACHINE, HKEY_CURRENT_USER, HKEY_CLASSES_ROOT and HKEY_UUSERS). Do I need some changes for access/changes to all these registry hives? Please help me so that with minimum changes may application become able to run on all 64 bit OSes. Thanks in Advance
Aseem Sharma wrote:
Please help me so that with minimum changes
I would think that the minimum change that would be needed is that you need to get a 64 bit platform to test on. There is nothing that you have described that could be considered 'easy' and much that could have a problem on a 64 bit system and even more so with Windows 7.
-
Aseem Sharma wrote:
Please help me so that with minimum changes
I would think that the minimum change that would be needed is that you need to get a 64 bit platform to test on. There is nothing that you have described that could be considered 'easy' and much that could have a problem on a 64 bit system and even more so with Windows 7.
Thanks.