The following sections provide information to help you develop CFX tags in C++.
Before you begin development of a CFX tag in C++, you might want to study the two CFX tags included with ColdFusion MX. These examples will help you get started working with the CFXAPI. The two example tags are as follows:
CFX_DIRECTORYLIST
Queries a directory for the list of files it contains.
CFX_NTUSERDB
(Windows only) Lets you add and delete Windows NT users.
On Windows, these tags are located in the cf_root\cfx\examples directory. On UNIX, these tags are in the cf_root/coldfusion/cfx/examples directory.
The following compliers generate valid CFX code for UNIX platforms:
Platform | Compiler |
---|---|
Solaris |
Sun C++ compiler 5.0 or higher (gcc does not work) |
Linux |
RedHat 6.2 gcc/egcs 1.1.2 compiler |
Before you can use your C++ compiler to build custom tags, you must enable the compiler to locate the CFX API header file, cfx.h. In Windows, you do this by adding the CFX API include directory to your list of global include paths. In Windows, this directory is cf_root\cfx\include. On UNIX this directory is cf_root/cfx/include. On UNIX, you will need -I <
includepath>
on your compile line (see the Makefile for the directory list example in the cfx/examples directory).
CFX tags built in Windows and on UNIX must be thread-safe. Compile CFX tags for Solaris with the -mt
switch on the Sun compiler.
On UNIX systems, your C++ library files can be in any directory as long as the directory is included in LD_LIBRARY_PATH or SHLIB_PATH (HP-UX only).
CFX tags built in C++ use the tag request object, represented by the C++ CCFXRequest class. This object represents a request made from an application page to a custom tag. A pointer to an instance of a request object is passed to the main procedure of a custom tag. The methods available from the request object let the custom tag accomplish its work. For information about the CFX API classes and members, see ColdFusion C++ CFX Reference in CFML Reference.
Note: Calling a non-existent C++ CFX procedure or entry point causes a JVM crash on UNIX.
After you configure a debugging session, you can run your custom tag from within the debugger, set breakpoints, single-step, and so on.
You can debug custom tags within the Visual C++ environment.
Macromedia recommends that you shut down all other Java programs.
The best place is to put it in ProcessRequest()
. Next time you execute the page you will hit the breakpoint.
To use a CFX tag in your ColdFusion applications, first register it in the Extensions, CFX Tags page in the ColdFusion MX Administrator.
cfx_MyNewTag
).
For improved performance, when the tag is ready for production use, you can select this option to keep the DLL in memory.
You can now call the tag from a ColdFusion page.