Sign in to follow this  
Followers 0
hgeras

Windows x64 compatibility

12 posts in this topic

I have made simple proggie (NvTempLogger,check sig) and someone who tried this in x64 told me that it doesnt work right.... I dont know exactly yet... But my question is : Are the AutoIt executables compatible with x64 enviroment? The only external call that i use is DllCall in Nvidia's dll...

Thanx,

C ya

Share this post


Link to post
Share on other sites



#2 ·  Posted (edited)

;) just saying hello to HgErAs :P Edited by oleg

There is a hex ( 31303030303030 ) reasons i love AutoIt !

Share this post


Link to post
Share on other sites

I have made simple proggie (NvTempLogger,check sig) and someone who tried this in x64 told me that it doesnt work right.... I dont know exactly yet... But my question is : Are the AutoIt executables compatible with x64 enviroment? The only external call that i use is DllCall in Nvidia's dll...

Thanx,

C ya

Autoit is compatible with X64 except for dll perhaps.

I am not familiar with X64 but I know the same restriction apply to Itanium system a 32-bit process cannot execute a 64 bit dll. I will imagine x64 machine have the same problem.

Share this post


Link to post
Share on other sites

Thanx for the reply jpm . But is it the executable that is 32-bit that causes incompatibility or the way autoit uses to access the dll? Would it be possible that in the future this would be solved (lets say a rundll64() command)? I saw some dll's of a program that had 2 versions of the dll .One for 32-bit and for 64-bit windows. I noticed that the first one was around 160kb and the 64-bit version was around 50kb... So it is sure that dll's must have a different structure.... Take a look in this matter.... I think a full windows 64-bit compatibility would be good since people are starting to use them more and more...

C ya

Share this post


Link to post
Share on other sites

Thanx for the reply jpm . But is it the executable that is 32-bit that causes incompatibility or the way autoit uses to access the dll? Would it be possible that in the future this would be solved (lets say a rundll64() command)? I saw some dll's of a program that had 2 versions of the dll .One for 32-bit and for 64-bit windows. I noticed that the first one was around 160kb and the 64-bit version was around 50kb... So it is sure that dll's must have a different structure.... Take a look in this matter.... I think a full windows 64-bit compatibility would be good since people are starting to use them more and more...

C ya

You cannot run a dll as such a sll has to be call. so Run as no problem.

But as I say based on the restriction os 64-bit Windows the X64 and IA64 a process 32-bit cannot call a 64-bit dll in the same process and viceversa. That's a Window design decision.

I cannot understand the size of the dll usually at least for ia64 a native 64-bit dll is bigger that a 32-bit.

But perhaps in X64 the 64-bit one does something different.

Which dll are you speaking about?

Share this post


Link to post
Share on other sites

#6 ·  Posted (edited)

When i said x64 i meant the 64-bit Version of windows ... Is x64 something different? Sorry if i 'm mistaken...

I was talking about winrar's Rarext.dll(122Kb) and Rarext64.dll(42Kb). You can check it on your own....

When i said RunDll64() I meant DllCall64()... WTF what was I thinking? I was a bit hasty....

Edited by hgeras

Share this post


Link to post
Share on other sites

When i said x64 i meant the 64-bit Version of windows ... Is x64 something different? Sorry if i 'm mistaken...

I was talking about winrar's Rarext.dll(122Kb) and Rarext64.dll(42Kb). You can check it on your own....

When i said RunDll64() I meant DllCall64()... WTF what was I thinking? I was a bit hasty....

There is 2 versions of 64-Bit window the X64 runing on AMD/Intel and IA64 running on Itanium/Intel

I have no access to X64 so I cannot verify but you are certainly true about the size.

What I can add is AutoIt execute in a 32-bit process so only rarext.dll must be use.

For the DllCall64() same reason apply as the AUTOIT executable is only a 32-bit process.

Share this post


Link to post
Share on other sites

I see your point... I was wondering if there could be ,technically, an "adaptor" exe AutoIt could use to access a 64-bit dll... I mean an exe or dll AutoIt could use and then in its turn access the 64-bit dll...

Could that be applicable or i'm just talking bulls**t?

thanx for your time...

C ya

Share this post


Link to post
Share on other sites

maybe AutoIt's code could be ported to x64....

eventually....

then when compiling a script meant to be cross platform compatible, it would include a 32bit and a 64bit AutoIt.exe

a "go between" 64bit exe does sound possible, if any of the devs has a dev platform for it......

then again, people have asked for Linux compatibilty too.

would be awesome to have a 'universal' language syntax (for the scripts) but have an AutoIt.exe for each Major OS.

Huge undertaking though...........


[u]Do more with pre-existing apps![/u]ANYGUIv2.8

Share this post


Link to post
Share on other sites

maybe AutoIt's code could be ported to x64....

eventually....

then when compiling a script meant to be cross platform compatible, it would include a 32bit and a 64bit AutoIt.exe

a "go between" 64bit exe does sound possible, if any of the devs has a dev platform for it......

then again, people have asked for Linux compatibilty too.

would be awesome to have a 'universal' language syntax (for the scripts) but have an AutoIt.exe for each Major OS.

Huge undertaking though...........

I don't think that there is a cross compatibility platform issue. AutoIt does not need to have a bigger address space so 32-bit seems enough. Under 64-bit OS you will get for free Twice the memory 2Gb go to 4Gb.

For the porting to Linux go to other thread explaining in detail the difficulty to map all windows API used in AutoIT to Linux counterpart.

;)

I see your point... I was wondering if there could be ,technically, an "adaptor" exe AutoIt could use to access a 64-bit dll... I mean an exe or dll AutoIt could use and then in its turn access the 64-bit dll...

Could that be applicable or i'm just talking bulls**t?

thanx for your time...

C ya

As I said it is a Windows design decision so it almost impossible you need to communicate between 2 processes AutoIt 32-bit an the other running the 64-bit code sending parameters and receiving results by message not in the stack as you do in a Call mechanism.

Go to Microsoft site to see how to port a 32-bit application to 64-bit you will understand better what I mean. :P

Share this post


Link to post
Share on other sites

I am also trying to run autoit v3 in an x64 environment and have run into some problems. Certain functions do not behave as expected, in particular ControlListViews.

The command I call is something like this:

ControlListView($title, $windowtext, "List1", "FindItem", $node[$i])

On x86 systems, this returns the correct index value for the item (e.g., 0,1,etc) but on an x64 system it returns a -1 (i.e., item not find).

The GUI that we are automating has both a 32-bit and 64-bit version.

Any ideas why this is not working in a x64 environment? We've also tried the latest beta version of autoit and still no luck.

Thanks.

-- Johnny

Share this post


Link to post
Share on other sites

For the moment I don't know.

you write about Control... functions.

There is an open bug on the subject.

I hope we found soon a solution. ;)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0