ExtractDLLEx plug-in: Difference between revisions
Line 83: | Line 83: | ||
* Smaller DLL file size. | * Smaller DLL file size. | ||
Mark,In 5.2, we had a latch that protected nelary all in-memory operations. In 6.0, we removed the latch from the query path, and in 6.1, we fully removed the latch from the system. This is what helped lead to many of the performance gains we have in 6.1. With this latch removed, we are now able to address other bottlenecks that were lying underneath this latch. | |||
== Credits == | == Credits == |
Revision as of 19:02, 15 May 2013
Author: mumpitzstuff (talk, contrib) |
Links
Extractdllex.zip (135 KB)
Extractdllex.zip (135 KB) (Mirror #1)
What is this?
ExtractDLLEx is a extension DLL for NSIS. It can decompress one or more files from a LZMA container file which was created with compressfile.exe before. It is especially useful in combination with NSISdl so that you don't have to download large files uncompressed.
Usage
- Decompression (within NSIS script):
- Push path and name of compressed file and then path and name of temporary destination file on top of the stack.
- Call the function "extract" with CallInstDLL
- On Success, the string "success" is on top of the stack, else an error message.
- The decompressed files are created in the same directory like the script executable NSIS script file.
- The second filename is only used for temporary file access!
- Compression (outside NSIS script or using !system):
- Call CompressFile.exe with the name of the compressed file and the uncompressed files as parameters. You can use relative paths of the actual directory. The usage of wildcards like * and ? is also supported!
- Use always / and not \ in your paths!
- Don't use / in front of relative paths.
- ../ is not supported in relative paths.
- CompressFile needs the lzma.exe file!
Example
Compression
CompressFile.exe test.7z test.* te?t.exe test1/test2/test.txt
Thanks a lot for the helpful poitsng. It is also my belief that mesothelioma has an extremely long latency period, which means that indication of the disease may not emerge until 30 to 50 years after the initial exposure to asbestos fiber. Pleural mesothelioma, which can be the most common sort and impacts the area within the lungs, might result in shortness of breath, chest muscles pains, along with a persistent cough, which may bring on coughing up bloodstream.
Process Overview
1. Batch file compresses files:
CompressFile.exe test.7z test.* test/test.txt
2. The process begins:
test.exe test.dat test/test.txt \ | / \ | / \ | / \ | / CompressFile.exe \ | / pack.tmp (hardcoded in CompressFile) | | test.7z -------------------------------------------------------- test.7z | | update.tmp (temporary file!) ExtractDLLEx.dll / | \ / | \ / | \ / | \ / | \ test.exe test.dat test/test.txt
3. NSIS script unpacks files:
Push "test.7z" Push "update.tmp" ExtractDllEx::extract ;get the result Pop $0 StrCmp $0 success SUCCESS MessageBox MB_OK|MB_ICONSTOP "$0" SUCCESS:
Changes from Original Version
- LZMA compression with CRC check.
- File container support.
- Wildcard support.
- Relative path support.
- Smaller DLL file size.
Mark,In 5.2, we had a latch that protected nelary all in-memory operations. In 6.0, we removed the latch from the query path, and in 6.1, we fully removed the latch from the system. This is what helped lead to many of the performance gains we have in 6.1. With this latch removed, we are now able to address other bottlenecks that were lying underneath this latch.
Credits
- Modified by
- Copyright 2004 by Achim Winkler (achim@lkcc.org)
- Created by
- Copyright 2002 by Tim Kosse (tim.kosse@gmx.de)
Legal Stuff
This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.
Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
- The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
- Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
- This notice may not be removed or altered from any source distribution.