in reply to Re^2: Perl calling my.DLL for serial port work.
in thread Perl calling my.DLL for serial port work.

Most of the time, it really helps if you copy and paste the exact error message you're getting, together with the code (a really small, self-contained example) that causes this.

My guess is that you're just missing the following line at the top of your program:

use Win32::API;

Also see the use keyword.

Replies are listed 'Best First'.
Re^4: Perl calling my.DLL for serial port work.
by kansaschuck (Sexton) on Feb 03, 2008 at 16:59 UTC
    Thanks for the posting advice and help, (window XP enviroment) Here's the error message below:
    C:\Perl\perlscripts>monks01.pl Can't locate Win32/API.pm in @INC (@INC contains: C:/Perl/site/lib C:/ +Perl/lib .) at C:\Perl\perlscripts\monks01.pl line 5. BEGIN failed--compilation aborted at C:\Perl\perlscripts\monks01.pl li +ne 5.
    code to follow:
    #! perl -w # use Win32; use Win32::API; my $SSC_OPEN = Win32::API->new( 'ssc-5', 'SSC_OPEN', '1', '2400', ); s +ub SSC_OPEN { $SSC_OPEN->Call(@_); }; # my $SSC_MOVE = Win32::API->new( 'ssc-5', 'SSC_MOVE', '1', '1', ); sub +SSC_MOVE { $SSC_MOVE->Call(@_); }; # my $SSC_CLOSE = Win32::API->new( 'ssc-5', 'SSC_CLOSE', '', '', ); sub +SSC_CLOSE { $SSC_CLOSE->Call(@_); };

      That means that the module Win32::API is not installed with your Perl. This is unlikely if you are using ActiveState Perl, but if you are using Strawberry Perl, you will have to install Win32::API via CPAN:

      cpan Win32::API

      Also, I recommend you read the documentation to Win32::API before modifying the code I posted. The code I posted was not intended for modification - you should have left it as is, and just called the code:

      SSC_OPEN( 1, 2400 );
        I'm using ActiveState and did some research and found that
        ppm install Win32-API
        will install the API. As for code mods: I made the assumption that the 'I' and 'II' were place holders to pass the needed info to the program. The OPEN needs to know com port and baud rate. SSC_OPEN(port,baudrate) . The MOVE needs notified of SERVO number and SERVO location. SSC_MOVE(servo,position) Thanks again.... getting closer :-)