Enabling IntelliSense and ObjectARX Class Browsing


A common complaint among ObjectARX programmers is that Visual C/C++ doesn't display IntelliSense context menus for classes defined in the ObjectARX headers. The trick is to include all the ObjectARX headers files somewhere in your solution. I created a new folder called ARXHeaders with subdirectories for every version of the ObjectARX SDK.

In each subdirectory, create a new empty static library project named e.g. 'ARX2007' and add every header file (*.h) from that version of the ObjectARX SDK to the project. It's important to give each project a unique name so that the project names don't collide when more than one is added to a single solution. Since there are no source files, there is no output file for these projects, and building them is a no-op. Nevertheless, adding one of these projects to an existing solution causes VC to "see" the ObjectARX classes and code definitions for use in IntelliSense. Another benefit of including the ObjectARX headers in the solution is the ability to use the class browser in VC to browse the ObjectARX SDK. Browsing can reveal some interesting undocumented functions, and it also proves very useful for providing a readable overview of class hierarchies and object definitions.

In projects that target multiple versions of AutoCAD (and therefore use multiple versions of the ObjectARX SDK) you can add the ARXHeaders project for each target version of ObjectARX. While adding multiple SDK versions won't tell VC which version of the SDK is used in a given source file or project, it does make each version separately available in the VC class browser for easy browsing.