Page 3 of 6

Re: Service Explorer Plugin

Posted: 07 Sep 2009, 16:42
by vld
OK...got it working in both 2.51 & 2.52

Re: Service Explorer Plugin

Posted: 07 Sep 2009, 16:56
by Jan Rysavy
Mike12345 wrote:Whoops, soory. :roll:
I will try to change the rtl in the next update.
Mike, It would be probably problem with MSVC 2008 (I'm not 100% sure) to link against salrtl.dll (comes from MSVC 6.0).
If you will find way how to do it, please let us know.

It is definitely possible with MSVC 2005 because Zarevak did it with DiskMap plugin.

We plan to switch Altap Salamander to MSVC 2008 and use latest RTL.
At the same time we will probably drop W9x (and NT4) support and introduce x64 version of Salamander.
Unfortunately it will take some time.

Re: Service Explorer Plugin

Posted: 07 Sep 2009, 19:23
by vld
I like your thinking Jan. Though I can see this PlugIn to be very useful, it will have limited use do to the fact that it needs another piece of software installled....especially when I use Salamander as a portable version.

Re: Service Explorer Plugin

Posted: 07 Sep 2009, 20:05
by manison
Maybe Mike could link to CRT statically and thus effectively eliminating the dependency on dynamic CRT that needs to be installed in side-by-side cache.

Re: Service Explorer Plugin

Posted: 07 Sep 2009, 20:08
by Jan Rysavy
The only drawback would be larger plugin, until we will switch to MSVC 2008 Compiler/RTL with Salamander.

Re: Service Explorer Plugin

Posted: 07 Sep 2009, 20:34
by manison
Jan Rysavy wrote:The only drawback would be larger plugin, until we will switch to MSVC 2008 Compiler/RTL with Salamander.
That's arguable. When linking statically just functions actually used by a module are linked in. For example in TC proxy this adds roughly 100K to the resulting file. On the other hand the whole msvcrXX.dll is more than 600K in size that has to be mapped into the virtual address space of the process.

Another possible solution could be use of the private side-by-side assembly in the application's local folder.

Re: Service Explorer Plugin

Posted: 07 Sep 2009, 20:43
by Jan Rysavy
Only +100K? In that case it's a no brainer.

Re: Service Explorer Plugin

Posted: 07 Sep 2009, 21:23
by Mike12345
Unfortunatly i think this would be the best/fastest solution. :?

The problem is VC2005/2008 uses different exception handling (and other features like the "__cxxFrameHandler3" function) which
doesn't exist in vc6. Therefore you get unresolved externals if you try to links against the normal salrtl.dll.
After digging around i found different approaches to overcame this problem (as described here, here or here) but this means a little work. :cry:

As for now i will try to offer the plugin with a static linked crt. 100k+ is not that much nowadays.
Nevertheless i will try to search and implement a better solution for this problem.

Thanks you for the heads-up, manison. 8)

Re: Service Explorer Plugin

Posted: 07 Sep 2009, 22:01
by manison
I tried linking against msvcrt.dll using WDK build environment but it's definitely not worth the effort. Who cares about few hundreds kilobytes today. Moreover we'll switch to salrtl in near future.

Re: Service Explorer Plugin

Posted: 07 Sep 2009, 22:36
by Jan Rysavy
manison wrote:Another possible solution could be use of the private side-by-side assembly in the application's local folder.
It looks like Side-by-Side assemblies are not supported on Windows prior to XP. So it doesn't look like option for us right now.

Statically linked VC2008 RTL is way to go...

Re: Service Explorer Plugin

Posted: 07 Sep 2009, 23:53
by manison
Jan Rysavy wrote:It looks like Side-by-Side assemblies are not supported on Windows prior to XP. So it doesn't look like option for us right now.
Since DLL loader prior Windows XP is not aware of manifests, copying CRT on search path should be enough. Just putting CRT into the directory from which the application loaded along with the manifest should do the trick on both Windows prior XP (ignoring the manifest) and XP+ (taking the manifest into account). However I did not test this presumption.

Re: Service Explorer Plugin

Posted: 07 Sep 2009, 23:56
by Jan Rysavy
You are right! This is a way how SALRTL.DLL works now (for plugins). My bad.

Re: Service Explorer Plugin

Posted: 08 Sep 2009, 10:24
by Mike12345
A new version is available.

Code: Select all

Version 0.0.6 (08.09.2009)
-------------------------
+ changing the startupmode is now supported
* RTL is now statically linked
Download from first post.

Re: Service Explorer Plugin

Posted: 08 Sep 2009, 10:43
by Jan Rysavy
Thank you!

Mike, could you please add some information into the package?
1. Your copyright and contact info
2. License (FREE?)
3. What Altap Salamander versions are supported
4. Install / Uninstall procedure

See for example Manison's TC Proxy plugin as inspiration.

Re: Service Explorer Plugin

Posted: 08 Sep 2009, 12:35
by Mike12345
Done. 8)