Valik Posted January 5, 2007 Share Posted January 5, 2007 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. Link to comment Share on other sites More sharing options...
jpam Posted January 5, 2007 Author Share Posted January 5, 2007 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 i am working on it. hope with some help from Valik To fix all call's Valik is no problem in the udf when i know how to combine two argument's in one call. Link to comment Share on other sites More sharing options...
Lakes Posted January 5, 2007 Share Posted January 5, 2007 Jpam, thanks for your continued efforts on this, much appricated. 2015 - Still no flying cars, instead blankets with sleeves. Link to comment Share on other sites More sharing options...
Lakes Posted January 5, 2007 Share Posted January 5, 2007 Yes, it does indeed work with Autoit V.3.2.1.2Its 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! 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! Thanks as always for everyone`s efforts to get this working. 2015 - Still no flying cars, instead blankets with sleeves. Link to comment Share on other sites More sharing options...
jpam Posted January 5, 2007 Author Share Posted January 5, 2007 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 Link to comment Share on other sites More sharing options...
Valik Posted January 5, 2007 Share Posted January 5, 2007 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. Link to comment Share on other sites More sharing options...
Uten Posted January 6, 2007 Share Posted January 6, 2007 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 i am working on it. hope with some help from Valik 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.. Please keep your sig. small! Use the help file. Search the forum. Then ask unresolved questions :) Script plugin demo, Simple Trace udf, TrayMenuEx udf, IOChatter demo, freebasic multithreaded dll sample, PostMessage, Aspell, Code profiling Link to comment Share on other sites More sharing options...
Valik Posted January 6, 2007 Share Posted January 6, 2007 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(). Link to comment Share on other sites More sharing options...
Uten Posted January 6, 2007 Share Posted January 6, 2007 OK, good to know. Please keep your sig. small! Use the help file. Search the forum. Then ask unresolved questions :) Script plugin demo, Simple Trace udf, TrayMenuEx udf, IOChatter demo, freebasic multithreaded dll sample, PostMessage, Aspell, Code profiling Link to comment Share on other sites More sharing options...
jpam Posted January 6, 2007 Author Share Posted January 6, 2007 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 Link to comment Share on other sites More sharing options...
_Kurt Posted January 6, 2007 Share Posted January 6, 2007 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 Awaiting Diablo III.. Link to comment Share on other sites More sharing options...
Valik Posted January 6, 2007 Share Posted January 6, 2007 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. Link to comment Share on other sites More sharing options...
Lakes Posted January 6, 2007 Share Posted January 6, 2007 (edited) 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? KurtYou 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) Also double check you have the Prospeed.dll either in the same folder, or even better, in your Windows/System32 folder. Edited January 6, 2007 by Lakes 2015 - Still no flying cars, instead blankets with sleeves. Link to comment Share on other sites More sharing options...
Lakes Posted January 6, 2007 Share Posted January 6, 2007 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. 2015 - Still no flying cars, instead blankets with sleeves. Link to comment Share on other sites More sharing options...
jpam Posted January 6, 2007 Author Share Posted January 6, 2007 (edited) THanks Valik !!! i am glad that you found the problem and can fix it in the next beta ! Thanks again! now i can continue working on the udf. jpam Edited January 6, 2007 by jpam Link to comment Share on other sites More sharing options...
jpam Posted January 6, 2007 Author Share Posted January 6, 2007 @ 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 Link to comment Share on other sites More sharing options...
_Kurt Posted January 6, 2007 Share Posted January 6, 2007 Yes, I knew that. I solved my problem by placing Prospeed.dll in the proper directory.. Hehe :"> stupid me. Kurt Awaiting Diablo III.. Link to comment Share on other sites More sharing options...
Lakes Posted January 6, 2007 Share Posted January 6, 2007 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. Link to comment Share on other sites More sharing options...
jpam Posted January 6, 2007 Author Share Posted January 6, 2007 you need to set the offset X and Y for the sprite download the updated Prospeed.au3 from first post greetings jpam Link to comment Share on other sites More sharing options...
Lakes Posted January 7, 2007 Share Posted January 7, 2007 you need to set the offset X and Y for the spritedownload the updated Prospeed.au3 from first postgreetingsjpamThanks Jpam, will do. 2015 - Still no flying cars, instead blankets with sleeves. Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now