JRowe Posted March 18, 2010 Posted March 18, 2010 Mostly. There are a few notable projects that use it, like au3Irrlicht. I've never seen a problem with using it. It's a good tool. [center]However, like ninjas, cyber warriors operate in silence.AutoIt Chat Engine (+Chatbot) , Link Grammar for AutoIt , Simple Speech RecognitionArtificial Neural Networks UDF , Bayesian Networks UDF , Pattern Matching UDFTransparent PNG GUI Elements , Au3Irrlicht 2Advanced Mouse Events MonitorGrammar Database GeneratorTransitions & Tweening UDFPoker Hand Evaluator[/center]
FinalVersion Posted March 18, 2010 Posted March 18, 2010 I compiled the example, but Autoit gives the errors about the functions from the example.dll. And I'm using the example autoit script meant for the example.dll. [center][+] Steam GUI [+][+] Clipboard Tool [+][+] System :: Uptime [+][+] StarCraft II Mouse Trap [+][/center]
JRowe Posted March 18, 2010 Posted March 18, 2010 (edited) We need more information if you want help. What errors are you getting? What did you compile with? Actually, try using the preprocessor directive meant to disable the warnings thrown by unknown function names: #AutoIt3Wrapper_plugin_funcs= _funcName1, _funcName2, _funcName3 Put that at the top of your script, with the correct demo function names. Edited March 18, 2010 by JRowe [center]However, like ninjas, cyber warriors operate in silence.AutoIt Chat Engine (+Chatbot) , Link Grammar for AutoIt , Simple Speech RecognitionArtificial Neural Networks UDF , Bayesian Networks UDF , Pattern Matching UDFTransparent PNG GUI Elements , Au3Irrlicht 2Advanced Mouse Events MonitorGrammar Database GeneratorTransitions & Tweening UDFPoker Hand Evaluator[/center]
FinalVersion Posted March 18, 2010 Posted March 18, 2010 No I just tried the example that comes with the SDK. [center][+] Steam GUI [+][+] Clipboard Tool [+][+] System :: Uptime [+][+] StarCraft II Mouse Trap [+][/center]
jchd Posted May 30, 2010 Posted May 30, 2010 For some time I've been contemplating using the plugin architecture as a very convenient way to bring ad hoc fast functions with an easy to use syntax and low overhead. I'm now at a point where I need to make a strategic choice: rely on plugins or not. Thus I'd appreciate to have informed opinions about: 1/ the perenity of plugins 2/ their ability to deal with in and out native Unicode strings. As I understand it after spending good time reading this thread and looking at members' realizations, plugins are essentially stable and unlikely to disappear anytime soon. But their handling of Unicode is still to develop, is a non-trivial task and has low priority. Given that what I intended to use plugins for is in large part for native strings handling, I suppose I need to stick to DllCalls. Does that reflect the current situation? This wonderful site allows debugging and testing regular expressions (many flavors available). An absolute must have in your bookmarks.Another excellent RegExp tutorial. Don't forget downloading your copy of up-to-date pcretest.exe and pcregrep.exe hereRegExp tutorial: enough to get startedPCRE v8.33 regexp documentation latest available release and currently implemented in AutoIt beta. SQLitespeed is another feature-rich premier SQLite manager (includes import/export). Well worth a try.SQLite Expert (freeware Personal Edition or payware Pro version) is a very useful SQLite database manager.An excellent eBook covering almost every aspect of SQLite3: a must-read for anyone doing serious work.SQL tutorial (covers "generic" SQL, but most of it applies to SQLite as well)A work-in-progress SQLite3 tutorial. Don't miss other LxyzTHW pages!SQLite official website with full documentation (may be newer than the SQLite library that comes standard with AutoIt)
JSThePatriot Posted August 24, 2010 Posted August 24, 2010 For some time I've been contemplating using the plugin architecture as a very convenient way to bring ad hoc fast functions with an easy to use syntax and low overhead.I'm now at a point where I need to make a strategic choice: rely on plugins or not. Thus I'd appreciate to have informed opinions about:1/ the perenity of plugins2/ their ability to deal with in and out native Unicode strings.As I understand it after spending good time reading this thread and looking at members' realizations, plugins are essentially stable and unlikely to disappear anytime soon. But their handling of Unicode is still to develop, is a non-trivial task and has low priority.Given that what I intended to use plugins for is in large part for native strings handling, I suppose I need to stick to DllCalls.Does that reflect the current situation?I'm sure you've moved forward since this post, but your understanding of where plugins are does seem to be quite correct. They are in general a low priority. They do what they do currently quite well in my opinion. They are still lacking many features and functionality, but that's understandable considering they are a low priority of the language.GL with your endeavors,Jarvis AutoIt Links File-String Hash Plugin Updated! 04-02-2008 Plugins have been discontinued. I just found out. ComputerGetInfo UDF's Updated! 11-23-2006 External Links Vortex Revolutions Engineer / Inventor (Web, Desktop, and Mobile Applications, Hardware Gizmos, Consulting, and more)
RickCHodgin Posted May 24, 2011 Posted May 24, 2011 I've created a .dll using the example.c "template" file that comes with AutoIT3. It compiles properly and everything seems to be working with the DLL. Where do I put this plugin to be loaded by AutoIT? I was looking for something like a plugins\ directory, but couldn't find one. Also, I see in the include\ directory there is a SQLite.au3 and SQLite.dll.au3. Is there some post-process that has to be run to convert the DLL from its native Win32 form to something AutoIT uses? Any help would be appreciated. Thanks.
RickCHodgin Posted May 24, 2011 Posted May 24, 2011 (edited) I'm also wondering if there's a feature (or could be) which allows AutoIT to parse a given line, such as: foo_function($p1, $p2); where "foo_function" is syntactically correct, but not found, and then have AutoIT automatically scan a plugins\ directory to look for .dlls that have the matching function name coded within the: AU3_PLUGIN_FUNC g_AU3_Funcs[] = { /* Function Name, Min, Max */ { "foo_function", 2, 2} }; structure? This would seem to be a desirable trait, rather than explicitly calling PluginOpen(). - Rick C. Hodgin Edited May 24, 2011 by RickCHodgin
wraithdu Posted May 24, 2011 Posted May 24, 2011 Aside from what's provided with the SDK, PluginOpen and PluginClose are the AutoIt functions you need.
devrandom Posted June 13, 2011 Posted June 13, 2011 Hello, there is an error in the example plugin. Line 155: if ( AU3_GetType(&p_AU3_Params[0]) != AU3_PLUGIN_INT32 || AU3_GetType(&p_AU3_Params[0]) != AU3_PLUGIN_INT32 ) Should be: if ( AU3_GetType(&p_AU3_Params[0]) != AU3_PLUGIN_INT32 || AU3_GetType(&p_AU3_Params[1]) != AU3_PLUGIN_INT32 )
twitchyliquid64 Posted July 18, 2011 Posted July 18, 2011 In the first post Jon Mentioned the removal of the PluginOpen Command in Favour of a Preproccessor Directive. That was over six years ago. Therefore is it safe to assume that this will not be implemented, and it is unlikely for there to be any script breaking changes to the plugin system? ongoing projects:-firestorm: Largescale P2P Social NetworkCompleted Autoit Programs/Scripts: Variable Pickler | Networked Streaming Audio (in pure autoIT) | firenet p2p web messenger | Proxy Checker | Dynamic Execute() Code Generator | P2P UDF | Graph Theory Proof of Concept - Breadth First search
twitchyliquid64 Posted July 18, 2011 Posted July 18, 2011 That is not a safe assumption.As a developer, would you be able to tell me if any changes to this system are on the table? and if yes, what they are? ongoing projects:-firestorm: Largescale P2P Social NetworkCompleted Autoit Programs/Scripts: Variable Pickler | Networked Streaming Audio (in pure autoIT) | firenet p2p web messenger | Proxy Checker | Dynamic Execute() Code Generator | P2P UDF | Graph Theory Proof of Concept - Breadth First search
Valik Posted July 18, 2011 Posted July 18, 2011 There is nothing to mention. It's an experimental feature not in a finished state.
Shaggi Posted July 22, 2011 Posted July 22, 2011 Any chance arrays as return are on the way? I have a plugin func which has to return a dynamically sized array. Since this isn't possible, only way to do it is some string formatting or struct passing. But both require an interface from autoit, and doing the string thing really leaks memory. Best was something like this... struct ArrayReturn { unsigned int amount; void * elements; }; ... DWORD * arr = new DWORD[nVec.size()+1]; for(unsigned int i = 0; i < nVec.size();++i) arr[i] = nVec[i]; ArrayReturn _return; _return.amount = nVec.size(); _return.elements = arr; AU3_SetInt32(pMyResult,(int)&_return); ... Ever wanted to call functions in another process? ProcessCall UDFConsole stuff: Console UDFC Preprocessor for AutoIt OMG
twitchyliquid64 Posted July 23, 2011 Posted July 23, 2011 (edited) Any chance arrays as return are on the way? I have a plugin func which has to return a dynamically sized array. Since this isn't possible, only way to do it is some string formatting or struct passing. But both require an interface from autoit, and doing the string thing really leaks memory. Best was something like this... struct ArrayReturn { unsigned int amount; void * elements; }; ... DWORD * arr = new DWORD[nVec.size()+1]; for(unsigned int i = 0; i < nVec.size();++i) arr[i] = nVec[i]; ArrayReturn _return; _return.amount = nVec.size(); _return.elements = arr; AU3_SetInt32(pMyResult,(int)&_return); ... I doubt it, cause as valik said, it's an experimental function not in a finished state, not to mention there has been no development on this functionality for several years. Edited July 23, 2011 by hyperzap ongoing projects:-firestorm: Largescale P2P Social NetworkCompleted Autoit Programs/Scripts: Variable Pickler | Networked Streaming Audio (in pure autoIT) | firenet p2p web messenger | Proxy Checker | Dynamic Execute() Code Generator | P2P UDF | Graph Theory Proof of Concept - Breadth First search
Unsigned Posted October 1, 2011 Posted October 1, 2011 (edited) EDIT: devrandom beat me to it. Hello, there is an error in the example plugin. Line 155: if ( AU3_GetType(&p_AU3_Params[0]) != AU3_PLUGIN_INT32 || AU3_GetType(&p_AU3_Params[0]) != AU3_PLUGIN_INT32 ) Should be: if ( AU3_GetType(&p_AU3_Params[0]) != AU3_PLUGIN_INT32 || AU3_GetType(&p_AU3_Params[1]) != AU3_PLUGIN_INT32 ) Also, I'd vote to keep PluginOpen() just because it allows dynamic loading of different plugins based on runtime conditions. Edited October 1, 2011 by Unsigned .
1234hotmaster Posted November 23, 2011 Posted November 23, 2011 i also support PluginOpen because its useful and btw can the team please continue to work on it?
sxyruz Posted February 14, 2012 Posted February 14, 2012 Great feature, as always. And will benefit all people, even those who will just be making the jump from not writing on C/C++. AutoIt covers the basic needed features for any programming needs but in any case that you would ned to get a full blown language to work with you, C/C++ are always something to look forward to.
acidman Posted April 25, 2012 Posted April 25, 2012 this plugin idea is a good one, considering not all of us has a background of making calls to .dll's so hell yea, go for it... [u]My dream is to have a dream...[/u]
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