-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Let me setup the environment. I have 2 machines:
(A) windows 2000 server pro, activeperl 5.8.4, visualstudio 6, vertex 3.0 sales tax software, 1.2 GB ram (B) windows 2000 server pro, activeperl 5.8.4, visualstudio 6, vertex 3.0 sales tax software. 1 GB ram Both have Service pack 4 installed. I have inline::c modules that wraps the vertex libraries so I can use them from perl. The libraries are Vst.lib & Location.lib (There are corresponding Vst.dll & Location.dll for the vertex applications) The code will follow, but the problem is that on the machine (A) it compiles and runs just fine. On machine (B) I get an exception: "The instruction at "0x029e2d99" referenced memory at "0x029a322c". The memory could not be "written"" When I try to debug it, I get "Unhandled exception in perl.exe (VST.DLL): 0xC0000005: Access Violation" Needless to say I have no idea where to look next. Any hints? Ideas? Thanks. The beginning of the vertex.pm is: __BEGIN__ package vertex; use Exporter (); @ISA = qw(Exporter); @EXPORT = qw(openVertex calcTaxRate closeVertex); use Inline Config => NAME => 'vertex', DIRECTORY => '/opt/project/vertex/_Inline', ENABLE => 'PRINT_INFO', ENABLE => 'BUILD_NOISY', ; use Inline C => Config => ENABLE => AUTOWRAP, LIBS => '-L/opt/project/vertex/lib -lVst', INC => '-I/opt/project/vertex/include', ; use Inline C; Inline->init; 1; __DATA__ __C__ #ifndef PORT_WINDOWS_EXE #define PORT_WINDOWS_EXE #endif #include "port.h" /* Resolves porting issues between operating systems */ #include "loc.h" /* Location module function prototypes */ ..... __END__ and the beginning of the geocoder.pm is: __BEGIN__ package geocoder; use Exporter (); @ISA = qw(Exporter); @EXPORT = qw(openGeoCoder getGeoCode closeGeoCoder); use Inline Config => NAME => 'geocoder', DIRECTORY => '/opt/project/vertex/_Inline', ENABLE => 'PRINT_INFO', ENABLE => 'BUILD_NOISY', DISABLE => 'SAFEMODE', ; use Inline C => Config => ENABLE => AUTOWRAP, LIBS => '-L/opt/project/vertex/lib -lLocation', INC => '-I/opt/project/vertex/include' ; use Inline C; Inline->init; 1; __DATA__ __C__ #ifndef PORT_WINDOWS_EXE #define PORT_WINDOWS_EXE #endif #include "port.h" /* Resolves porting issues between operating systems */ #include "loc.h" /* Location module function prototypes */ ... __END__ I have a wrapper library, vertexWrapper.pm: __BEGIN__ # TAX_RATE.pl require Exporter; @ISA = qw(Exporter); @EXPORT = qw(openVertexDB taxRate closeVertexDB openGeoCoderDB geoCode closeGeoCoderDB); use vertex; use geocoder; my $DEBUG=0; my $INDOFFGEO = 265101270; my $id = "1"; my $vertexInit=0; my $geoCoderInit=0; sub openVertexDB { shift if UNIVERSAL::isa($_[0] => __PACKAGE__); openVertex(); $vertexInit=1; return 1; } sub closeVertexDB { shift if UNIVERSAL::isa($_[0] => __PACKAGE__); closeVertex(); $vertexInit=0; return 1; } sub openGeoCoderDB { shift if UNIVERSAL::isa($_[0] => __PACKAGE__); openGeoCoder(); $geoCoderInit=1; return 1; } sub closeGeoCoderDB { shift if UNIVERSAL::isa($_[0] => __PACKAGE__); closeGeoCoder(); $geoCoderInit=0; return 1; } ## Can be called with only a geocode, else the rest are NULL. # # args are 1) GEOCODE # 2) $AMOUNT # 3) Customer Code # 4) Customer Class Code # # return = tax # sub taxRate { shift if UNIVERSAL::isa($_[0] => __PACKAGE__); my ($arg1,$amount,$custCd,$custClassCd) = @_; my ($geoCode) = $arg1 =~ /(\d+)/; my $tax; if($geoCode){ openVertex() unless $vertexInit; $tax=&calcTaxRate($id,$geoCode,$amount,$INDOFFGEO,$custCd,$custClassCd); closeVertex() unless $vertexInit; if ($DEBUG) { printf STDERR "ID: |%s|\n", $id; printf STDERR "GEOCODE: |%s|\n", $geoCode; printf STDERR "TAX: |%7.5f|\n\n", $tax; printf STDERR "TAX RATE: |%7.5f|\n\n", $tax/$amount; } return $tax; } return -1; } __END__ Thanks. - -- Brian Millett [EMAIL PROTECTED] "Heaven can not exist, (636) 458-9106 If the family is not eternal" 6B-GSCTHP F. Ballard Washburn -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (GNU/Linux) Comment: Using GnuPG with Remi - http://enigmail.mozdev.org iD8DBQFGcEwqDVN3ZP5gvv0RAkFRAJ0euNvdpgx63H/FXfVwqy72XMoE4ACgixQo pMMlHoXMM1/BZAuVCCCibl4= =OqkT -----END PGP SIGNATURE-----