Most of this code is not really needed - depends on how you declate the DLL import.
eg Procedure Convert(Dir: Integer; Lat, Long: Double) ; var NewLat, NewLong, LatAcc, LongAcc: Double ; Err: Integer ; Filename: String; begin Filename := 'c:\grid\nzgd2kgrid0005.gsb' ; Err := TransGeogPt( Pchar(Filename), Dir, Lat, Long, @NewLat, @NewLong, @LatAcc, @LongAcc); end; I would have translated the call as function(psGridFile: PChar; lDirection: Integer; dLatitude, dLongitude: Double; var pdLatNew, pdLongNew, pdLatAcc, pdLongAcc: Double): Integer; Then call as Err := TransGeogPt( Pchar(Filename), Dir, Lat, Long, NewLat, NewLong, LatAcc, LongAcc); -----Original Message----- From: David O'Brien [mailto:[EMAIL PROTECTED] Sent: Monday, 5 April 2004 10:21 To: NZ Borland Developers Group - Delphi List Subject: RE: [DUG] Problem using a dll. Do I have to allocate memory for an LPSTR? It seems to warn me if I do. If I step through as it is, Filename has the correct value at the call. Dave. -----Original Message----- From: Paul Mckenzie [mailto:[EMAIL PROTECTED] Sent: Monday, 5 April 2004 10:09 a.m. To: NZ Borland Developers Group - Delphi List Subject: Re: [DUG] Problem using a dll. Looks to me like you are not allocating memory for the filename - and then pass the pointer to the allocated memory... Regards Paul McKenzie Analyst Programmer SMSS Ltd. ----- Original Message ----- From: "David O'Brien" <[EMAIL PROTECTED]> To: "NZ Borland Developers Group - Delphi List" <[EMAIL PROTECTED]> Sent: Monday, April 05, 2004 9:47 AM Subject: RE: [DUG] Problem using a dll. > Most problems are solved now, just an issue with the filename. > > Procedure Convert(Dir: Integer; Lat, Long: Double) ; > var > NewLat, NewLong, LatAcc, LongAcc: PDouble ; > Err: Integer ; > Filename: LPSTR ; > begin > GetMem(NewLat, SizeOf(Double)) ; > GetMem(NewLong, SizeOf(Double)) ; > GetMem(LatAcc, SizeOf(Double)) ; > GetMem(LongAcc, SizeOf(Double)) ; > Filename := 'c:\grid\nzgd2kgrid0005.gsb' ; > Err := TransGeogPt(Filename, Dir, Lat, Long, NewLat, NewLong, > LatAcc, > LongAcc) ; > if Err <> 1 then > ShowMessage('Error ('+InttoStr(Err)+')') ; > ... > > This returns error 44 which is described as "Invalid file extension on > Grid Shift File (must be either .asc or .gsb)." The same error is > returned if the file is valid or not, so I assume the filename I am > passing is not being sent properly. > > Dave. > > -----Original Message----- > From: Phil Middlemiss [mailto:[EMAIL PROTECTED] > Sent: Monday, 5 April 2004 9:32 a.m. > To: NZ Borland Developers Group - Delphi List > Subject: Re: [DUG] Problem using a dll. > > > The pdLatNew etc can simply be desribed as Doubles but with the var > qualifier - although I don't think that necessarily is the issue. I > suspect the problem lies in how you are preparing the various > variables and values when you call the routine. Can you provide some > code that shows how you are calling it? > > Phil. > ----- Original Message ----- > From: "David O'Brien" <[EMAIL PROTECTED]> > To: "NZ Borland Developers Group - Delphi List" <[EMAIL PROTECTED]> > Sent: Monday, April 05, 2004 8:41 AM > Subject: [DUG] Problem using a dll. > > > > Haven't done much of this before. I am trying to use a dll with a > > function definition of: > > > > Long _stdcall TransGeogPt(LPSTR psGridFile, long lDirection, double > > dLatitude, double dLongitude, double* pdLatNew, double* pdLongNew, > > double* pdLatAcc, double* pdLongAcc) > > > > I have translated this as: > > > > function(psGridFile: PChar; lDirection: Integer; dLatitude, > > dLongitude: Double; pdLatNew, pdLongNew, pdLatAcc, pdLongAcc: > > PDouble): Integer; > > > > However trying to use this function I get: > > > > Access violation at address 77C43B4C in module 'MSVCRT.DLL'. Read of > > address 00000000'. > > > > Any ideas? Have I translated wrong? > > > > Cheers, > > Dave. > > > > _______________________________________________ > > Delphi mailing list > > [EMAIL PROTECTED] http://ns3.123.co.nz/mailman/listinfo/delphi > > > > _______________________________________________ > Delphi mailing list > [EMAIL PROTECTED] http://ns3.123.co.nz/mailman/listinfo/delphi > > _______________________________________________ > Delphi mailing list > [EMAIL PROTECTED] http://ns3.123.co.nz/mailman/listinfo/delphi _______________________________________________ Delphi mailing list [EMAIL PROTECTED] http://ns3.123.co.nz/mailman/listinfo/delphi _______________________________________________ Delphi mailing list [EMAIL PROTECTED] http://ns3.123.co.nz/mailman/listinfo/delphi _______________________________________________ Delphi mailing list [EMAIL PROTECTED] http://ns3.123.co.nz/mailman/listinfo/delphi