Problems with Draw Test Harness 6.7.0

Hello,

I've installed the 6.7.0 version of OCCT. But I've a bug with the Draw Test Harness. The OS is Windows XP. So when I've try to load the plugin with TCL syntax : pload VISUALIZATION, a popup window appears with this message :
"Le point d'entrГ©e de la procГ©dure _FreeImage_SetThumbnail@8 est introuvable dans la bibliothГЁque de liaison dynamique Freeimage.dll"

and in the console of Drawexe I've this message :

"
Hint: use "pload ALL" command to load standard commands
Draw[1]> pload ALL
An exception was caught 1004AF10 : Draw_Failure: Could not open: TKDCAF; reason: La procГљdure spГљcif
iГљe est introuvable.

** Exception ** 1004AF10 : Draw_Failure: Could not open: TKDCAF; reason: La procГљdure spГљcifiГљe est
introuvable.

Draw[2]>
"

So have you already meet this problem. Can you help me to solve this trouble.

The batch Draw.bat is used and in version 6.6.0 OCCT work fine.

Best regards

Christophe POIZAT

Kirill Gavrilov's picture

OCCT6.7.0 (from binary package opencascade-6.7.0.exe) opens fine here on Windows XP workstation. So it should be something specific on your computer.

It looks like another Freeimage.dll appears, not installed within OCCT (although draw.bat->env.bat should configure PATH correctly).

Maybe Freeimage.dll installed in Windows\System32 on your system by some awkward application?
Have you installed OCCT into path without special symbols/spaces?

christophe poizat's picture

Thanks kgv,

You are right. I had not thought of that. there was actually a different version of FreeImage in c: \ windows \ system32 (a 3.14 version.) In OCCT it's the version 3.15 that was used.

Now everything works fine.

Thank you for your quick and accurate assistance.

Kirill Gavrilov's picture

Just to fulfill the answer - here is the complete description of DLL search order:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms682586%28v=vs....

- The directory from which the application loaded.
- The current directory.
- The system directory. Use the GetSystemDirectory function to get the path of this directory.
- The 16-bit system directory. There is no function that obtains the path of this directory, but it is searched.
- The Windows directory. Use the GetWindowsDirectory function to get the path of this directory.
- The directories that are listed in the PATH environment variable. Note that this does not include the per-application path specified by the App Paths registry key. The App Paths key is not used when computing the DLL search path.

In development environment it is wide-spread used practice to configure PATH. But System32 has higher priority here which might lead to conflicts (since unlike on Linux, DLLs have no version prefixes in most cases).

So for end-user application it is better to place libraries nearby executable or configure paths using SetDllDirectory().