XMS에 포함된 대부분의 C++ 클래스는 getHandle() 메소드를 제공합니다. C++ 응용프로그램은 오브젝트의 getHandle() 메소드를 호출하여 C 응용프로그램이 오브젝트 액세스에 사용하는 핸들을 검색할 수 있습니다. C++ 응용프로그램은 C API에서 함수 호출을 통해 핸들을 사용하여 오브젝트에 액세스할 수 있습니다.
#include <xms.hpp> using namespace std; int main(int argc, char *argv[]) { xms::ConnectionFactory cf; xms::Connection conn; xmsHConn hConn; cf.setIntProperty(XMSC_CONNECTION_TYPE, XMSC_CT_RTT); cf.setIntProperty(XMSC_RTT_CONNECTION_PROTOCOL, XMSC_RTT_CP_TCP); cf.setStringProperty(XMSC_RTT_HOST_NAME, "localhost"); cf.setIntProperty(XMSC_RTT_PORT, 1506); conn = cf.createConnection(); // Retrieve the handle for the connection. hConn = conn.getHandle(); // Using the retrieved handle, call a C API function. xmsConnStart(hConn, NULL); // Other code here return(0); }
오브젝트의 핸들을 사용하여 C++ 응용프로그램은 해당되는 C API 함수 호출을 통해 오브젝트를 닫거나 삭제할 수 있습니다. 그러나 C++ 응용프로그램이 이런 방법으로 오브젝트를 닫거나 삭제하면 응용프로그램은 더 이상 C++ API를 통해 오브젝트를 사용할 수 없습니다.
C++ 응용프로그램이 C API에서만 사용할 수 있는 함수를 사용해야 될 경우에는 C API를 사용하는 것이 좋습니다. 그러한 함수의 예는 참조로 문자열 또는 바이트 배열을 리턴하는 C 함수에 설명되어 있습니다.