Dear Jeff,
More steps forward and a few steps back.
I reinstalled the latest ActiveTcl and the tclsh85 script worked as you
described. tkkit went from 3081KB to 3135KB. However, one line that seems
critical is the following:
package require vfs::mk4 #this is necessary for the vfs::mk4::Mount command
Here is the complete script (that seemed to work):
package require vfs #installed in latest versions of ActivePerl
package require vfs::mk4 #this is necessary for the vfs::mk4::Mount command
set tkkit C:/Perl/lib/auto/Tcl/tkkit.dll ; # set to correct path
file attributes $tkkit -readonly 0 ; # needs to be writable
vfs::mk4::Mount $tkkit tkkit ; # mounts file as dir 'tkkit'
set tcllib C:/Tcl/lib # where you installed Tcl and most lib files
set tkkitlib tkkit/lib # this is one of the built-in $::auto_path search
areas
set tkdnd $tcllib/tkdnd2.0 # path to tkdnd lib files, complete with
pkgIndex.tcl
file copy -force $tkdnd $tkkitlib
vfs::unmount tkkit
exit
I next rewrote my Perl script removing the "lappend" hack and things worked
on my computer. But, when I tried to compile with PerlApp everything went
smoothly (with one warning) until I tried to test the executable, which
produced an error:
Can't create
'C:\DOCUME~1\Anthony\LOCALS~1\Temp\pdk-Anthony/auto/Tcl/Tcl.dll': Permission
denied at perlapp line 894.
BEGIN failed--compilation aborted at
/<Z:\all_files_20090303\software_development\dnd_testing\dnd_test_ver3_embedding_dnd_in_tkkit.exe>Tkx.pm
line 206.
BEGIN failed--compilation aborted at
dnd_test_ver3_embedding_dnd_in_tkkit.plline 2.
Below is the script (with comments for everyone) and below that the verbose
report from PerlApp.
Any help would be greatly appreciated.
Laurence.
SCRIPT
########################################################################################
use strict;
use Tkx;
Tkx::package_require('tkdnd');
my $e;
my $mw = Tkx::widget->new(".");
my $w_edit = $mw->new_entry(-name=>".current_dir",-textvariable=>\$e);
$w_edit->g_pack(qw '-fill both -expand true');
Tkx::tkdnd__drop___target_register($w_edit,'*');
Tkx::bind ($w_edit, '<<Drop:DND_Files>>', [ sub {
$e = shift;
print "I have '$e'\n";
}, Tkx::Ev("%D")]);
Tkx::MainLoop;
#COMMENTS
#Get tkdnd from http://sourceforge.net/projects/tkdnd/files/ (I used the
Windows binary)
#Put tkdnd2.0 into C:\Tcl\lib (or equivalent area)
#Note 1 on where to put tkdnd:
http://www.mail-archive.com/[email protected]/msg00448.html
########################################################################################
PerlAPP output
########################################################################################
PerlApp 8.0.1 build 289861 (perl 5.10.0)
Copyright (C) 1998-2009 ActiveState Software Inc. All rights reserved.
Standard license SCACD62284 for Laurence Anthony <
[email protected]>
Using Perl 5.10.0 located at:
*** C:\Perl\bin\perl.exe
Including modules:
+++ C:\Perl\lib\AutoLoader.pm
+++ C:\Perl\lib\Carp.pm
+++ C:\Perl\lib\Carp\Heavy.pm
+++ C:\Perl\lib\Config.pm
+++ C:\Perl\lib\Config_heavy.pl
+++ DynaLoader.pm (internal)
+++ C:\Perl\lib\Errno.pm
+++ C:\Perl\lib\Exporter.pm
+++ C:\Perl\lib\Exporter\Heavy.pm
+++ C:\Perl\lib\File\Glob.pm
+++ C:\Perl\lib\List\Util.pm
+++ C:\Perl\lib\PerlIO.pm
+++ C:\Perl\lib\PerlIO\scalar.pm
+++ C:\Perl\lib\Scalar\Util.pm
+++ C:\Perl\lib\Tcl.pm
Tclaux.pm:
warn: Can't locate Tclaux.pm
refby: C:\Perl\lib\Tcl.pm line 409
+++ C:\Perl\lib\Text\ParseWords.pm
+++ C:\Perl\lib\Tie\Hash\NamedCapture.pm
+++ C:\Perl\lib\Time\HiRes.pm
+++ C:\Perl\lib\Tkx.pm
+++ XSLoader.pm (internal)
+++ C:\Perl\lib\attributes.pm
+++ C:\Perl\lib\auto\File\Glob\Glob.dll
+++ C:\Perl\lib\auto\List\Util\Util.dll
+++ C:\Perl\lib\auto\PerlIO\scalar\scalar.dll
+++ C:\Perl\lib\auto\Tcl\Tcl.dll
+++ C:\Perl\lib\auto\Tcl\tkkit.dll
+++ C:\Perl\lib\auto\Tcl\copy_of_tkkit.dll
+++ C:\Perl\lib\auto\Time\HiRes\HiRes.dll
+++ C:\Perl\lib\overload.pm
+++ C:\Perl\lib\strict.pm
+++ C:\Perl\lib\vars.pm
+++ C:\Perl\lib\warnings.pm
+++ C:\Perl\lib\warnings\register.pm
+++ perl510.dll (C:\Perl\bin\perl510.dll)
Summary: 0 errors and 1 warning
Note that all dependencies marked with a "warn" message are usually
optional; they are only needed at runtime if the application makes
use of this optional functionality.
Please run `perlapp --help DIAGNOSTICS` for more information
about the generated error and warning messages.
Created 'dnd_test_ver3_embedding_dnd_in_tkkit.exe' [Test it]
Executable size: 6.69 MB same as last time
[DONE]
{.\dnd_test_ver3_embedding_dnd_in_tkkit.exe}
Can't create
'C:\DOCUME~1\Anthony\LOCALS~1\Temp\pdk-Anthony/auto/Tcl/Tcl.dll': Permission
denied at perlapp line 894.
BEGIN failed--compilation aborted at
/<Z:\all_files_20090303\software_development\dnd_testing\dnd_test_ver3_embedding_dnd_in_tkkit.exe>Tkx.pm
line 206.
BEGIN failed--compilation aborted at
dnd_test_ver3_embedding_dnd_in_tkkit.plline 2.
[DONE]
########################################################################################