Physx 3.2.2 SDK build configuration is incorrect?

Doing a dumpbin on Windows seems to indicate that the implemenation of the stubs from the static link library ( DEBUG build ) are implemented in the CHECKED dlls? Let me rephrase that. The stubs referenced by the *DEBUG.lib seems to be implemented in the CHECKED version of the .dll. Is this suppose to be the correct behavior ?

I saw your question in your other topic.

I guess its supposed to be using the debug dlls combined with the checked dlls.
Also when you are linking against the DEBUG lib.

This is not a specific 3.2.2 “feature” - if I remember correctly , each version of 3.x use it this way.
I guess Nvidia already know this, and its the desired behavior.

But again, I´m only guessing it.

That is weird considering you cannot have a DEBUG and CHECKED release of the same function/class etc in the same binary, unless debug and checked are the same thing.

when I think about it - I found maybe a reason for it.

The CHECKED dll contains less debug messages than the DEBUG dlls.
Thus its possible to link against the CHECKED libs when you dont want to
have for almost anything warnings.

But when you have a bug or some weird behaivor or nullpointer exception, you should
use the DEBUG libs to see where the possible error is.
So there are more checks against wrong values in the DEBUG libs.

Here is a quote of the documentation:

The checked build contains code to detect invalid parameters, API race conditions, and other incorrect uses of the API which might otherwise cause mysterious crashes or failures in simulation.
The profile build omits the checks, but still has PVD and memory instrumentation.
The release build is built for minimal footprint and maximum speed. It omits most checks and instrumentation.

Simulation works the same way in all of them, and all are compiled with high optimization levels. In addition, you can build components of PhysX which ship with source in a debug configuration, which is compiled without optimizations.
The debug build can be useful for error analysis, but contains asserts used for SDK development which some customers may find too intrusive for daily use.


We strongly recommend that you use the checked build as the primary configuration for day-to-day development and QA.

PhysX libraries of different build configurations (e.g. the DEBUG version of PhysXVehicle and the CHECKED version of PhysXVisualDebuggerSDK) should never be mixed in an application because this will also result a CRT conflict.