PDA

View Full Version : ODE under FreePaascal on Win32



technomage
16-01-2005, 11:12 AM
I've been trying to get ODE working under FreePascal using the units supplied with JEDI-SDL. The applicaiton compiles OK but I get the following error message when trying to run the app.

"The procedureentry point dWorldQuickStop could not be located in the dynamic link library ode.dll"

The same code compiled using Delphi runs without any problems.

Any one have any ideas?

Anonymous
16-01-2005, 09:17 PM
[quote="technomage"]I've been trying to get ODE working under FreePascal using the units supplied with JEDI-SDL. The applicaiton compiles OK but I get the following error message when trying to run the app.

"The procedureentry point dWorldQuickStop could not be located in the dynamic ]

Is it a C procedure? If it is C++ (without extern) it might be mangled. FPC can't interface directly to C++, wrap it in C first.

savage
16-01-2005, 09:37 PM
FPC is very strict with most things and external definitions are no different, while Delphi/Kylix will allow you to get away with the definition existing, while the DLL/SO does not contain the implementation. In this case, the definition dWorldQuickStop exists in the .pas file but does not exist in the DLL. So you have 2 options....
1. Comment out the definition of dWorldQuickStop and everything should be sweet.

2. Create a new DLL, or if you get the error on Linux, a new SO that include the missing dWorldQuickStop

I hope this helps.

PS I have just sent an email to the DelphiODE dudes asking them if is should be there all not. In either case a definate solution should be fortchcoming in the next few days.

{MSX}
17-01-2005, 07:21 AM
I've had the same error..
You could try to download the latest ode.dll from the site, maybe the one included is old (the linux one is definetly old)

Bye!

Clootie
17-01-2005, 02:42 PM
To solve this kind of errors you have to compile with smartlinking ON :!:

savage
17-01-2005, 03:48 PM
Is that for Delphi or FPC or both?

Lightning
17-01-2005, 04:00 PM
Delphi uses smartlinking by default, FPC smartilinking works only for functions but solves the strict library checking, there might be some problems with the headers or the library, you only get these errors when some function is really missing or has a different name.

savage
17-01-2005, 08:26 PM
Hi Dean,
I just compiled my TruckOff demo using FPC and did not get any error messages. Having said that, I think I may have found your problem.

In your ODEImport.pas file do you have a function declared "dWorldQuickStop". If so this should actually be "dWorldQuickStep". If you change it to dWorldQuickStep it should compile and run fine with FreePascal.
Maybe a stray find and replace or typo crept into your version, because the CVS version correctly has the dWorldQuickStep declaration.