ArcEngine 9.3.1 Deployment error in Windows 7 64bit OS

2096
9
03-17-2011 05:47 PM
FrancisSacdalan
New Contributor II
I have an ArcEngine Application developed using arcengine 9.3.1 and VS 2005, everything works with XP and windows 7 32bit OS but when we run it in Windows 7 64bit, the application doesn't proceed and error occurs upon start up of the application.

Does anyone encounter this kind of problem? Hope you can help me on how to work it out.

Thanks in advance.
0 Kudos
9 Replies
RichardWatson
Frequent Contributor
More information would be helpful. 

What specific error occurs on startup?

Common problems:
- Missing DLLs
- "(x86)" in the file path
- The host application is .NET and it is not built as a 32 bit application

I'm guessing that the last item is your problem.
0 Kudos
FrancisSacdalan
New Contributor II
Thanks rlwatson for the quick response.

I don't know what is the specific error because when I run the application it never proceed and prompted microsoft end program error.

I developed the application in a 32bit machine using VB.NET 2005. I'll try to debug my application in 64bit hoping I can trace what the source of error.

If you know some work around or solution regarding my problem I appreciate it so much.

Thanks,
0 Kudos
RichardWatson
Frequent Contributor
From the Visual Studio Command prompt, run the corflags utility against the executable image that you built.

http://blogs.msdn.com/b/gauravseth/archive/2006/03/07/545104.aspx

If you executable was built for AnyCpu and you are calling ArcObjects then you have no chance of success on a 64 bit machine.
0 Kudos
FrancisSacdalan
New Contributor II
Thanks rlwatson for the info. I'll try it.

I already change the target platform to 64bit but still no success.

I'm using the arcobjects reference in arcEngine, arcobjects reference is now supported in win7 64bit? I read in arcengine documents that arcengine can run in 64bit OS but must run in 32bit, i can't get what it means.
0 Kudos
FrancisSacdalan
New Contributor II
***disregard
0 Kudos
RichardWatson
Frequent Contributor
ArcObjects can only run in a 32 bit process because they are built as a set of 32 bit DLLs.

32 bit processes can run on 64 bit machines
32 bit processes cannot call functions in 64 bit DLLs
64 bit processes cannot call functions in 32 bit DLLs

Compile your .NET executable for 32 bit processes only.
0 Kudos
FrancisSacdalan
New Contributor II
ArcObjects can only run in a 32 bit process because they are built as a set of 32 bit DLLs.

32 bit processes can run on 64 bit machines
32 bit processes cannot call functions in 64 bit DLLs
64 bit processes cannot call functions in 32 bit DLLs

Compile your .NET executable for 32 bit processes only.


Thanks very much rlwatson, I compile my application in 32bit and it run in 64bit machine, the problem occurs because I use to retrieve information in the local machine registry and that is not allowed in win7 64bit, so I place my registry in Current User registry and every things works fine.

Thanks very much for all the information and the help rlwatson, really appreciated it.
0 Kudos
MichaelRobb
Occasional Contributor III
This can be avoided by selecting x86 CPU rather than 'ANY CPU' when compiling.  (advanced compiling options)
0 Kudos
FrancisSacdalan
New Contributor II
This can be avoided by selecting x86 CPU rather than 'ANY CPU' when compiling.  (advanced compiling options)


This method makes the application work in 64 bit OS. 🙂
0 Kudos