About programming ArcGIS in Visual C++
Developing in Visual C++ is a large and complex subject, as it provides a much lower level of interaction with the underlying Windows APIs and COM APIs when compared to other development environments.
While this can be a hindrance for rapid application development, it is the most flexible approach. A number of design patterns, such as COM aggregation and singletons, that are possible in Visual C++, the complex COM plumbing code, can be hidden using standard class libraries, such as ATL. However, it is still important to have a thorough understanding of the underlying ATL COM implementation.
With the ability to develop with the Visual C# .NET language, it is worth considering porting Visual C++ code to this environment and using the ArcGIS .NET API. The syntax of C# is not unlike C++, but the resulting code is generally simpler and more consistent.
This section is intended to serve two main purposes: to familiarize you with general Visual C++ coding style and debugging, beginning with a discussion on ATL, and to detail specific usage requirements and recommendations for working with the ArcObjects programming platform in Visual C++.
In this section |
|
General guidelines and considerations when developing with ArcObjects. | |
Active Template Library (ATL) helps you implement COM objects and saves typing. This topic serves as an introduction to this framework for implementing COM objects. | |
Smart types are objects that behave as types. The two main smart types covered in this topics are Direct-To-COM and the Active Template Library. | |
Some naming convention suggestions. | |
Tips to help you get the most from your debugging session in Visual Studio. | |
Using the #import command to reference ArcGIS interfaces, types, and objects. | |
Discussion of terminology and usage for working with COM events in VC++ and ATL. | |
ArcGIS Engine includes a number of ActiveX controls that can simplify application development. This topic highlights how to use ATL to add these controls to a dialog box. | |
This topic discusses hosting the controls on a dialog box using the MFC framework. |