Modify

Opened 9 years ago

Closed 9 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 Changed 9 years ago by Jos

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 Changed 9 years ago by Jpm

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 Changed 9 years ago by sheck@…

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 Changed 9 years ago by sheck@…

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

comment:5 follow-up: Changed 9 years ago by anonymous

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

comment:6 in reply to: ↑ 5 Changed 9 years ago by Jpm

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 Changed 9 years ago by Jos

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 follow-up: Changed 9 years ago by 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.

comment:9 in reply to: ↑ 8 Changed 9 years ago by Jos

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 Changed 9 years ago by sheck

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 Changed 9 years ago by Jos

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 Changed 9 years ago by anonymous

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 Changed 9 years ago by sheck

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 Changed 9 years ago by sheck

any news on this problem ?

comment:15 Changed 9 years ago by Jos

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 Changed 9 years ago by Jos

  • Resolution set to Works For Me
  • Status changed from new to closed

Guidelines for posting comments:

  • You cannot re-open a ticket but you may still leave a comment if you have additional information to add.
  • In-depth discussions should take place on the forum.

For more information see the full version of the ticket guidelines here.

Add Comment

Modify Ticket

Action
as closed The owner will remain Jos.
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.