Indigo Rose Software

Professional Software Development Tools

 
+ Reply to Thread
Page 1 of 9 1 2 3 ... LastLast
Results 1 to 15 of 123
  1. #1
    Join Date
    Jun 2008
    Location
    AMSWaves
    Posts
    231

    Lightbulb Free Plugin : Memory Plugin

    Hi All,
    Im back, in this long period im working on some plugin & Program and now im back, for today i create memory plugin And im work on OpenGL Plugin for AMS.

    this plugin very very useful for advanced Programmers and less useful for beginners.

    usages :

    1) all body know call a functions in dll can be in 2 way by value and by refrence and some dll just use second way for calling or returning (Like GetWindowTextA in user32.dll or ...) with this plugin u can call a dll with refrence. (See help file and second attachment)

    2) with this plugin you can create Plugin , With this & useful tool from reteset you can create powerful Plugin for Example with this i create Clipboard plugin see third attachment. but if you create a plugin with this plugin you MUST write a THANKS to the author of this plugin for create this. (this is something like a copyright)

    3) if you create a dll that have a string parameter use memory instead of string, use it better.

    4) with this u can create relevance between two or more application that you want create.

    5) for beginners this can handle (store) any thing on memory (number or string) but be aware after close application all memory poped, be carful.

    With these plugins AMS come powerful.
    First Attachment is Setup file.

    Enjoy.

    Please Reply
    Attached Files
    Last edited by AMSWaves; 07-29-2009 at 07:09 AM.

  2. #2
    Join Date
    Jan 2009
    Posts
    172
    hi

    thanks for the plugin

    with this its possible create one ramcleaner?

    works in systems 64 bits?

    thanks

  3. #3
    Join Date
    Jun 2008
    Location
    AMSWaves
    Posts
    231
    Quote Originally Posted by Tomasin View Post
    hi

    thanks for the plugin
    hi Tomasin, thanks for reply


    Quote Originally Posted by Tomasin View Post
    with this its possible create one ramcleaner?
    no this plugin created for your application, with this plugin you just can free and clean size of ram that your application before allocated.


    Quote Originally Posted by Tomasin View Post
    works in systems 64 bits?
    i dont know i must install a 64 bit os for my plugins, my plugins created for 32 bit os maybe my plugins in 64 bit os maybe plugins want some optimizing in functions and variable ..., but maybe work.
    Last edited by AMSWaves; 07-30-2009 at 08:12 AM.

  4. #4
    Join Date
    Oct 2007
    Location
    Gensokyo
    Posts
    1,324
    The plugin worked fine on Windows 7 x64.

  5. #5
    Join Date
    May 2006
    Posts
    1,443
    Great Job , thank you for this good tool
    i was trying this , but it always crashes

    what is wrong in this function


    Code:
    function GetPluginNameFromLMD(strPath)
    
    memSz = Memory.Allocate(1024);
    memPn = Memory.Allocate(8);
    Memory.PutInt(memSz, 0);
    Memory.PutString(memPn, "", -1);
    
    
    DLL.CallFunction(strPath, "irPlg_GetPluginName", memPn..","..memSz, DLL_RETURN_TYPE_INTEGER, DLL_CALL_STDCALL);
    memPn = Memory.ReAllocate(memPn, memSz);
    
    nlegth = Memory.GetInt(memSz);
    DLL.CallFunction(strPath, "irPlg_GetPluginName", memPn..","..nlegth, DLL_RETURN_TYPE_INTEGER, DLL_CALL_STDCALL);
    
    local strPluginName =  Memory.GetString(memPn, -1);
    Memory.Free(memSz);
    Memory.Free(memPn);
    return strPluginName;
    end
    this will call the function below ( you know)
    Code:
    int irPlg_GetPluginName(char* szBuffer, int* pnBufferSize)
    {
    	
    	int nLength = lstrlen(szObjectName);
    	if(*pnBufferSize < nLength)
    	{
    		*pnBufferSize = nLength;
    		return -1;
    	} else
    	{
    		memset(szBuffer,0,*pnBufferSize);
    		lstrcpy(szBuffer,szObjectName);
    		return nLength;
    	}
    }
    in first call of this funtion , it returns the buffer size with pnBufferSize
    and in second call of this function i use pnBufferSize as the buffer size and i'll get szBuffer as plugin name ,
    but it fails always even if i tried different variations



    thanks

  6. #6
    Join Date
    Jun 2008
    Location
    AMSWaves
    Posts
    231

    Smile

    Quote Originally Posted by reteset View Post
    Great Job , thank you for this good tool
    i was trying this , but it always crashes

    what is wrong in this function


    Code:
    function GetPluginNameFromLMD(strPath)
    
    memSz = Memory.Allocate(1024);
    memPn = Memory.Allocate(8);
    Memory.PutInt(memSz, 0);
    Memory.PutString(memPn, "", -1);
    
    
    DLL.CallFunction(strPath, "irPlg_GetPluginName", memPn..","..memSz, DLL_RETURN_TYPE_INTEGER, DLL_CALL_STDCALL);
    memPn = Memory.ReAllocate(memPn, memSz);
    
    nlegth = Memory.GetInt(memSz);
    DLL.CallFunction(strPath, "irPlg_GetPluginName", memPn..","..nlegth, DLL_RETURN_TYPE_INTEGER, DLL_CALL_STDCALL);
    
    local strPluginName =  Memory.GetString(memPn, -1);
    Memory.Free(memSz);
    Memory.Free(memPn);
    return strPluginName;
    end
    this will call the function below ( you know)
    Code:
    int irPlg_GetPluginName(char* szBuffer, int* pnBufferSize)
    {
    	
    	int nLength = lstrlen(szObjectName);
    	if(*pnBufferSize < nLength)
    	{
    		*pnBufferSize = nLength;
    		return -1;
    	} else
    	{
    		memset(szBuffer,0,*pnBufferSize);
    		lstrcpy(szBuffer,szObjectName);
    		return nLength;
    	}
    }
    in first call of this funtion , it returns the buffer size with pnBufferSize
    and in second call of this function i use pnBufferSize as the buffer size and i'll get szBuffer as plugin name ,
    but it fails always even if i tried different variations



    thanks
    hi my brother, i felt good to see you in this thread , i think nobody love this plugin but this is very powerful, you know.
    i think we must use this plugin more to all body know what is this.



    use this function i change and improve it with comment see it :
    Code:
    function GetPluginNameFromLMD(strPath)
    
      memPn = Memory.Allocate(1024); -- memory for store plugin name
      memSz = Memory.Allocate(8); -- memory for store memPn size
      Memory.PutInt(memSz, 1024); -- Size of memPn
      --Memory.PutString(memPn, "", -1); all memory have null value dont need this line
    
    
      ret = tonumber(DLL.CallFunction(strPath, "irPlg_GetPluginName", memPn..","..memSz, DLL_RETURN_TYPE_INTEGER, DLL_CALL_STDCALL))
      
      if ret == -1 then -- size of memPn is not enough so dll fill the require size in memSz
        require_size = Memory.GetInt(memSz) -- get the require size that dll filled it
        memPn = Memory.ReAllocate(memPn, require_size); -- reallocate memPn with require size
        DLL.CallFunction(strPath, "irPlg_GetPluginName", memPn..","..memSz, DLL_RETURN_TYPE_INTEGER, DLL_CALL_STDCALL);
      end
      
      local strPluginName =  Memory.GetString(memPn, -1); -- get the plugin name
      Memory.Free(memSz); -- release memory on ram of memSz
      Memory.Free(memPn); -- release memory on ram of memPn
      return strPluginName; -- return :)
    end
    if u see bug please post it, your post really create me happy for this plugin.

    thanks.
    Last edited by AMSWaves; 08-01-2009 at 05:38 PM.

  7. #7
    Join Date
    Jun 2008
    Location
    AMSWaves
    Posts
    231
    this is better call irPlg_GetPluginName with DLL_CALL_CDECL instead of DLL_CALL_STDCALL because these are c function, so with DLL_CALL_CDECL dll return correct value (-1 for not enough memory size chek it with irPlg_GetPluginActionXML because this want big memory.)

    so correction code is :
    Code:
    function GetPluginNameFromLMD(strPath)
    
      memPn = Memory.Allocate(1024); -- memory for store plugin name
      memSz = Memory.Allocate(8); -- memory for store memPn size
      Memory.PutInt(memSz, 1024); -- Size of memPn
      --Memory.PutString(memPn, "", -1); all memory have null value dont need this line
    
    
      --ret = tonumber(DLL.CallFunction(strPath, "irPlg_GetPluginActionXML", memPn..","..memSz, DLL_RETURN_TYPE_INTEGER, DLL_CALL_CDECL))
      ret = tonumber(DLL.CallFunction(strPath, "irPlg_GetPluginName", memPn..","..memSz, DLL_RETURN_TYPE_INTEGER, DLL_CALL_CDECL))
      
      if ret == -1 then -- size of memPn is not enough so dll fill the require size in memSz
        require_size = Memory.GetInt(memSz) -- get the require size that dll filled it
        memPn = Memory.ReAllocate(memPn, require_size); -- reallocate memPn with require size
        --ret = tonumber(DLL.CallFunction(strPath, "irPlg_GetPluginActionXML", memPn..","..memSz, DLL_RETURN_TYPE_INTEGER, DLL_CALL_CDECL))
        DLL.CallFunction(strPath, "irPlg_GetPluginName", memPn..","..memSz, DLL_RETURN_TYPE_INTEGER, DLL_CALL_CDECL);
      end
      
      local strPluginName =  Memory.GetString(memPn, -1); -- get the plugin name
      Memory.Free(memSz); -- release memory on ram of memSz
      Memory.Free(memPn); -- release memory on ram of memPn
      return strPluginName; -- return :)
    end

  8. #8
    Join Date
    Apr 2007
    Location
    Raalte, OV, Netherlands
    Posts
    3,287
    I'm loving this plugin, memory support for AMS yay !

    I must thank you alot AMSWaves, very well done!
    Bas Groothedde
    Imagine Programming :: Blog :: Familiar people here

    My AMS Plugins:

  9. #9
    Join Date
    Apr 2007
    Location
    Raalte, OV, Netherlands
    Posts
    3,287
    Here's one to get the plugin's XML



    this is mighty!
    Code:
    function GetPluginXMLFromLMD(strPath)
      local memPx = Memory.Allocate(1024);
      local memSz = Memory.Allocate(8);
      Memory.PutInt(memSz, 1024);
      
      local ret = tonumber(DLL.CallFunction(strPath, "irPlg_GetPluginActionXML", memPx..","..memSz, DLL_RETURN_TYPE_INTEGER, DLL_CALL_CDECL))
      
      if ret == -1 then
        local require_size = Memory.GetInt(memSz)
        memPx = Memory.ReAllocate(memPx, require_size);
        DLL.CallFunction(strPath, "irPlg_GetPluginActionXML", memPx..","..memSz, DLL_RETURN_TYPE_INTEGER, DLL_CALL_CDECL);
      end
      
      local strPluginXML =  Memory.GetString(memPx, -1);
      Memory.Free(memSz);
      Memory.Free(memPx);
      return strPluginXML;
    end
    Last edited by Imagine Programming; 08-01-2009 at 06:53 PM.
    Bas Groothedde
    Imagine Programming :: Blog :: Familiar people here

    My AMS Plugins:

  10. #10
    Join Date
    May 2006
    Posts
    1,443
    Thank You , It works Perfect

    most of the people can think , this is a useless tool
    but they are missing a big thing


    this is really a useful plugin , but it requires a bit of high level knowledge

    i was trying to make a dialog for Action Plugin Compiler that lists installed actions plugins
    like the attahment below , it works well now

    thank you very much
    Attached Images

  11. #11
    Join Date
    Apr 2009
    Posts
    277
    Nice Work, This is very powerful and now enables AMS to use even more API as well as many other 3rd party dll's that use memory pointers.

    Thanks

  12. #12
    Join Date
    Jun 2007
    Location
    Delphi II
    Posts
    1,534
    This seems like a very powerful plugin but I wouldn't even know where to begin learning how to use it or to what application I would apply it. I know diddly about memory management.
    Action Plugins
    AllOn | Box | Class | Code | Cursor | DXML | Error | Frames | GlobalPaths | Group | INIPlus |KeyBind | KeyLock | MathEx | Menu | Name | Project | Resize | StatusBar
    Download

  13. #13
    Join Date
    Jan 2008
    Location
    Ufa, Russia
    Posts
    128
    Thank you man for this rockin plugin! now it's time to tweak it with AMS, eh? a lil bit of c++ functionality won't do no harm to it

  14. #14
    Join Date
    Jun 2008
    Location
    AMSWaves
    Posts
    231
    Hi All,
    Thanks Imagine Programming, reteset, MicroByte, Centauri Soldier, S0mbre and all members for your attention.
    Last edited by AMSWaves; 08-03-2009 at 06:26 PM.

  15. #15
    Join Date
    Jun 2008
    Location
    AMSWaves
    Posts
    231
    Quote Originally Posted by reteset View Post
    Thank You , It works Perfect

    most of the people can think , this is a useless tool
    but they are missing a big thing


    this is really a useful plugin , but it requires a bit of high level knowledge

    i was trying to make a dialog for Action Plugin Compiler that lists installed actions plugins
    like the attahment below , it works well now

    thank you very much
    This is pretty Dialog

    Good Work.

+ Reply to Thread
Page 1 of 9 1 2 3 ... LastLast

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts