Jump to content
Sign in to follow this  
jpam

prospeed

Recommended Posts

There's more than one call to that function. You have to fix all calls, not just one of them. There may be other places where the wrong parameters are being passed. I wrote the corruption detection code and discovered the problem in Prospeed.au3. Once I did that and confirmed for myself that fixing the number of arguments caused a crash at a different place in the code, I quit work on it.

Share this post


Link to post
Share on other sites

sorry the udf and example's work only whit version autoit-v3.2.1.2

Tryit many diferent call's in last beta butt i dont't get it error free :D

i am working on it.

hope with some help from Valik :P

To fix all call's Valik is no problem in the udf when i know how to combine two argument's in one call.

Share this post


Link to post
Share on other sites

Yes, it does indeed work with Autoit V.3.2.1.2

Its available from here http://www.autoitscript.com/autoit3/files/beta/autoit/sav/

I downloaded the zip and extracted it to a folder, I put the Prospeed.au3 UDF into the Include folder there.

I then created a shortcut to Autoit.exe and put in the folder where all my Prospeed examples are stored, you can put it anywhere, but put it somewhere so you can`t get mixed up with the current version of autoit.

To run the ProSpeed Demos/examples click on the Autoit shortcut you have made, it should bring up a fileselect menu, click on any of the Prospeed examples to run them, it works! :P

Autoit Developers we really need your help here...

As you can see by the number of views to this topic, there is huge interest in this! :D

Thanks as always for everyone`s efforts to get this working.


2015 - Still no flying cars, instead blankets with sleeves.

Share this post


Link to post
Share on other sites

Valik

please can you look at this syntax

Dllcall using 1 argument

autoit-v3.2.1.2-beta

$S_PIC = DllCall($S_DLL,"long","LoadExtImage","str",$S_File) ;Works fine

$S_PIC[0] gives data back

$S_PIC[1] gives Filestring back

autoit-v3.2.2.0

Type "str"

$S_PIC = DllCall($S_DLL,"long","LoadExtImage","str",$S_File) ;AutoIt Crash

Type "wstr"

$S_PIC = DllCall($S_DLL,"long","LoadExtImage","wstr",$S_File) ;No Crash

$S_PIC[0] gives 0 back

$S_PIC[1] gives Filestring back

Thanks in advange

jpam

Share this post


Link to post
Share on other sites

I don't see anything obvious. This is crashing in a very strange place. It doesn't crash in a debug build and in fact, I don't even get any warnings which is strange. It's crashing when AutoIt tries to access a local variable which is unrelated to the DLL and the variables passed to it. I also don't see any changes that would affect this. This needs some further research.

Share this post


Link to post
Share on other sites

sorry the udf and example's work only whit version autoit-v3.2.1.2

Tryit many diferent call's in last beta butt i dont't get it error free :D

i am working on it.

hope with some help from Valik :P

To fix all call's Valik is no problem in the udf when i know how to combine two argument's in one call.

Isn't LoadExtImage suposed to have a pointer to a string and not a string? (LoadExtBmp and LoadExtImage does not have the same call syntax as fare as I can read from the documentation.

I'm not sure if this will make AutoIt pass on the pointer to the string

Local $S_background = DllCall($gDll,"long","LoadExtImage","ptr",$S_FILE)oÝ÷ Øêâ*.«Þ¶hÙbëaÆ®¶­s`b33c·âÒFÆÅ7G'V7D7&VFRgV÷C·7G"gV÷C² FÆÅ7G'V7E6WDFFb33c·âÂÂb33cµ5ôdÄR b33c·âÒFÆÅ7G'V7DvWEG"b33c·â Æö6Âb33cµ5ö&6¶w&÷VæBÒFÆÄ6ÆÂb33c¶tFÆÂÂgV÷C¶ÆöærgV÷C²ÂgV÷C´ÆöDWDÖvRgV÷C²ÂgV÷C·G"gV÷C²Âb33c·â

When I tested AutoIt dont crash on that line, in the Background function. But I did not get a handle to the image either so it does crash on the next dllcall.

Why it works in the older beta beats me..:)

Share this post


Link to post
Share on other sites

The AutoIt str type is passed as char* which is a pointer to an array of char. You want to use "str". It's fine. This has nothing to do with that at all. The crash is somewhere else inside DllCall().

Share this post


Link to post
Share on other sites

I think that its something to do how Autoit stores the array after autoit v3.2.1.2-beta

When i play with different type's sometimes it give me an errror in memory allocation

only string type "str" gives me the pointer for the first byte of the image

thanks guys for looking in to this problem

Share this post


Link to post
Share on other sites

Hello jpam,

Not sure why this isn't working for me, I tried running with several betas, I tried this too:

I downloaded the zip and extracted it to a folder, I put the Prospeed.au3 UDF into the Include folder there.

I then created a shortcut to Autoit.exe and put in the folder where all my Prospeed examples are stored, you can put it anywhere, but put it somewhere so you can`t get mixed up with the current version of autoit.

To run the ProSpeed Demos/examples click on the Autoit shortcut you have made, it should bring up a fileselect menu, click on any of the Prospeed examples to run them, it works!

And I'm still getting this error, everytime:

C:\PROGRA~1\AutoIt3\beta\Include\prospeed.au3 (364) : ==> Subscript used with non-Array variable.: 
$S_WIDTH = DllCall($S_DLL,"long","GetBmpWidth","long",$S_background[0]) 
$S_WIDTH = DllCall($S_DLL,"long","GetBmpWidth","long",$S_background^ ERROR

Am I doing something wrong? Perhaps it is a mistake in the updated version?

Kurt

Share this post


Link to post
Share on other sites

I found the reason for the crash. While the crash was in AutoIt, I think the DLL is to blame. Never-the-less, I can fix it in AutoIt and will. A future version of AutoIt will have this fix in it.

Share this post


Link to post
Share on other sites

Hello jpam,

Not sure why this isn't working for me, I tried running with several betas, I tried this too:

And I'm still getting this error, everytime:

C:\PROGRA~1\AutoIt3\beta\Include\prospeed.au3 (364) : ==> Subscript used with non-Array variable.: 
$S_WIDTH = DllCall($S_DLL,"long","GetBmpWidth","long",$S_background[0]) 
$S_WIDTH = DllCall($S_DLL,"long","GetBmpWidth","long",$S_background^ ERROR

Am I doing something wrong? Perhaps it is a mistake in the updated version?

Kurt

You MUST use Autoit V.3.2.1.2, UnZip into its own Folder, not where the current versions are installed and remember to put the ProSpeed.au3 file into the include folder where you have unziped this version to.

You could put something like this at the start of the ProSpeed code..

MsgBox(0,"You must Use Version V.3.2.1.2 !!", "You are using Version " &@AutoItVersion)
to check you are running the correct version (until it Autoit gets fixed to run this Dll anyway) :P

Also double check you have the Prospeed.dll either in the same folder, or even better, in your Windows/System32 folder.

Edited by Lakes

2015 - Still no flying cars, instead blankets with sleeves.

Share this post


Link to post
Share on other sites

I found the reason for the crash. While the crash was in AutoIt, I think the DLL is to blame. Never-the-less, I can fix it in AutoIt and will. A future version of AutoIt will have this fix in it.

Thanks for your efforts Valik. :P


2015 - Still no flying cars, instead blankets with sleeves.

Share this post


Link to post
Share on other sites

THanks Valik !!!

i am glad that you found the problem

and can fix it in the next beta !

Thanks again! :P

now i can continue working on the udf.

jpam

Edited by jpam

Share this post


Link to post
Share on other sites

@ kurt

The error is that the dll call does not give you the array back

he can not find your picture on disk

make sure that you specified the path where the dllcall can find it

Share this post


Link to post
Share on other sites

I`ve been playing with the sprite functions, the sprites do seem to be arranged in an odd way, when I tried to do the same with some larger sprites, the frames for one direction (top row) are displayed fine, but the sprites are displayed out of place (black boarder at the bottom) for the return direction (bottom row), I even left a gap in the middle, like the example gif for the bee.

Do you have any info how the sprite function selects frames from a Sprite.gif?

Thanks.


2015 - Still no flying cars, instead blankets with sleeves.

Share this post


Link to post
Share on other sites

you need to set the offset X and Y for the sprite

download the updated Prospeed.au3 from first post

greetings

jpam

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  

×
×
  • Create New...