Modify

Opened 16 years ago

Closed 15 years ago

#1657 closed Bug (Works For Me)

AutoIt3Wrapper on XP 64 bit error

Reported by: sheck@… Owned by: Jos
Milestone: Component: SciTE4AutoIt
Version: 3.3.6.1 Severity: None
Keywords: Cc:

Description

OS: XP 64 bit SP2
Autoit V3 3.3.6.1
Scite 1.79
AutoIt3Warpper 2.0.1.24

No matter which script I try to compile I always get errors:

03:32:23 Performing the Program Resource Update steps:

!>03:32:23 Error: Failed to enumerate RT_VERSION resources, using defaults.
...>Updating Program Version information.
...>Adding 6 Icon(s).
!>03:32:24 Error: Failed to append script data to end of updated executable. Try recompiling your script.rc:2

Exit code: 0 Time: 23.289

I tried using the latest beta of Autoit3warpper, but getting the same error. However, older Scite with autoit3warpper version 2.0.0.0 works fine. I also tried different versions of Autoit, which made no difference, meaning that the problem is with autoit3warpper itself. I tried the same on XP 32 bit and everything works there, no matter which version of autoit3warpper I use. So the problem only occurs in 64 bit OS.

Attachments (0)

Change History (16)

comment:1 by Jos, 16 years ago

This is an error from the Resource update routines in AutoIt3Wrapper.
Could you check a few things:

  • Try disable your AV for that particular directory/file
  • Make sure you do not have the Explorer open an the output script selected.

I have no way to replicate this error so its difficult to do any debugging.

Jos

comment:2 by J-Paul Mesnage, 16 years ago

Can you replicate it with a Vista X64 or a Win7 X64?
Which kind of processor are you running with AMD/Intel X64 or Itanium?

comment:3 by sheck@…, 16 years ago

Hi,

I tried what you suggested and got the same results. I noticed that autoit3wrapper has been rewritten since version 2.0.0.0. I will try to figure this out, but it's hard to trace the whole thing if I didn't write the script. If I get anything, I will post it here.

comment:4 by sheck@…, 16 years ago

I don't have Vista or WIN 7. I'm running on Intel Core 2 Duo.

comment:5 by anonymous, 16 years ago

I forgot to mention that I'm running Windows in VirtualBox under Ubuntu. I also have 32 bit XP running standalone.

in reply to:  5 comment:6 by J-Paul Mesnage, 16 years ago

Replying to anonymous:

I forgot to mention that I'm running Windows in VirtualBox under Ubuntu. I also have 32 bit XP running standalone.

If you are running in a VirtualBox I can imagine you can use a Win7 or Vista evaluation version. Perhaps we can see if the problem is still there.

comment:7 by Jos, 16 years ago

Could you try the current version in the Beta directory and let me know if you get more info about the _WinAPI_LoadLibraryEx() which is probably failing for you.

Jos

comment:8 by sheck, 16 years ago

$hModule returns 0x00000000
@error returns 0 and @extended returns 0

I think that's what you were asking for. Let me know if you need anything else.

in reply to:  8 comment:9 by Jos, 16 years ago

Replying to sheck:

$hModule returns 0x00000000
@error returns 0 and @extended returns 0

I think that's what you were asking for. Let me know if you need anything else.

I added the following lines to the script which I assume will display the info when it's failing:

	If @error Then
		Local $terror = @error
		Local $textended = @extended
		Write_RC_Console_Msg("WinAPI_GetLastError:" & _WinAPI_GetLastError(), "", "!")
		Write_RC_Console_Msg("WinAPI_GetLastErrorMessage:" & _WinAPI_GetLastErrorMessage(), "", "!")
		Write_RC_Console_Msg("Error: Failed _WinAPI_LoadLibraryEx   error:" & $terror & "   extended:" & $textended, "", "!")
	EndIf

comment:10 by sheck, 16 years ago

this part requires @error to be non-zero, otherwise it will be skipped. And since @error returns 0, that part is skipped. I will remove If statement and run the script. I'll post the results.

comment:11 by Jos, 16 years ago

mmm...I expect the error to be set as that "should" be returned by the call:

Func _WinAPI_LoadLibraryEx($sFileName, $iFlags = 0)
	Local $aResult = DllCall("kernel32.dll", "handle", "LoadLibraryExW", "wstr", $sFileName, "ptr", 0, "dword", $iFlags)
	If @error Then Return SetError(@error, @extended, 0)
	Return $aResult[0]
EndFunc   ;==>_WinAPI_LoadLibraryEx

so the DllCall doesn't return any @error and the return value of the call is returned only.

comment:12 by anonymous, 16 years ago

So this is what I get without the if statement:

06:35:26 Performing the Program Resource Update steps:

!>06:35:27 WinAPI_GetLastError:87
!>06:35:27 WinAPI_GetLastErrorMessage:The parameter is incorrect.

!>06:35:27 Error: Failed _WinAPI_LoadLibraryEx error:0 extended:0
!>06:35:27 Error: Failed to enumerate RT_VERSION resources, using defaults.
...>Updating Program Version information.
!>06:35:27 Error: Failed to append script data to end of updated executable. Try recompiling your script.rc:2
+>06:35:27 AutoIT3.exe ended.rc:0

Exit code: 0 Time: 51.016

comment:13 by sheck, 16 years ago

Seems that kernel32.dll doesn't like something. By the way, there are 2 of them on XP 64. One in C:\WINDOWS\SysWOW64 an the other one is in C:\WINDOWS\System32 Not sure if you're aware of that.

comment:14 by sheck, 16 years ago

any news on this problem ?

comment:15 by Jos, 16 years ago

I cannot simulate it as it is working fine for me on my Win7 x64 Home.
Maybe you can do some more debugging on your system?

comment:16 by Jos, 15 years ago

Resolution: Works For Me
Status: newclosed

Modify Ticket

Action
as closed The owner will remain Jos.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.