Main Content

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

참고 항목

|