COM 객체 만들기
actxserver
함수를 사용하여 DLL(동적 연결 라이브러리) 컴포넌트에 대한 in-process 서버 또는 실행 파일(EXE) 컴포넌트에 대한 out-of-process 서버를 만듭니다.
DLL 컴포넌트 인스턴스화하기
DLL(동적 연결 라이브러리)로 구현된 컴포넌트에 대한 서버를 만들려면 actxserver
함수를 사용하십시오. MATLAB®은 클라이언트 애플리케이션이 포함된 프로세스와 동일한 프로세스에 컴포넌트의 인스턴스를 만듭니다.
DLL 컴포넌트와 함께 사용 시, actxserver
의 구문은 actxserver(ProgID)
입니다. 여기서 ProgID
는 컴포넌트의 프로그래밍 식별자입니다.
actxserver
는 객체에 대한 기본 인터페이스의 핸들을 반환합니다. 다른 COM 함수 호출에서 이 핸들을 사용하여 객체를 참조하십시오. 핸들을 사용하여 객체에 대한 더 많은 인터페이스를 가져올 수도 있습니다. 인터페이스 사용에 대한 자세한 내용은 COM Object Interfaces 항목을 참조하십시오.
Microsoft® ActiveX® 컨트롤과 달리, 이 서버에 의해 표시되는 사용자 인터페이스는 별도의 창에 나타납니다.
64비트 MATLAB 애플리케이션에서는 32비트 in-process DLL COM 객체를 사용할 수 없습니다. 이 제한 사항에 대한 자세한 내용은 Why am I not able to use 32-bit DLL COM Objects in 64-bit MATLAB?을 참조하십시오.
EXE 컴포넌트 인스턴스화하기
actxserver
함수를 사용하여 실행 파일(EXE)로 구현된 컴포넌트에 대한 서버를 만들 수 있습니다. 이 경우 MATLAB은 out-of-process 서버에 컴포넌트를 인스턴스화합니다.
실행 파일을 만들기 위한 actxserver
의 구문은 actxserver(ProgID, sysname)
입니다. ProgID
는 컴포넌트의 프로그래밍 식별자이고 sysname
은 DCOM(분산 COM) 시스템을 구성하는 데 사용되는 선택적 인수입니다.
actxserver
는 COM 객체에 대한 기본 인터페이스의 핸들을 반환합니다. 다른 COM 함수 호출에서 이 핸들을 사용하여 객체를 참조하십시오. 핸들을 사용하여 객체에 대한 더 많은 인터페이스를 가져올 수도 있습니다. 인터페이스 사용에 대한 자세한 내용은 COM Object Interfaces 항목을 참조하십시오.
이 서버에 의해 표시되는 사용자 인터페이스는 별도의 창에 나타납니다.
다음 예제에서는 Microsoft Excel® 스프레드시트 프로그램을 실행하는 COM 서버 애플리케이션을 만듭니다. 핸들은 h
에 할당됩니다.
h = actxserver('Excel.Application')
MATLAB에 다음이 표시됩니다.
h = COM.excel.application
MATLAB은 컴퓨터에서 이미 실행 중인 COM 자동화 서버 애플리케이션의 인스턴스에 프로그래밍 방식으로 연결할 수 있습니다. 이러한 애플리케이션에 대한 참조를 가져오려면 actxGetRunningServer
함수를 사용하십시오.
다음 예제에서는 Excel 프로그램에 대한 참조를 가져옵니다. 단, Excel 프로그램은 시스템에서 이미 실행 중이어야 합니다. 반환되는 핸들은 h
에 할당됩니다.
h = actxGetRunningServer('Excel.Application')
MATLAB에 다음이 표시됩니다.
h = COM.excel.application