2011-02-07 7 views
2

Im은 이전 하드웨어와 인터페이스하는 matlab에 스크립트를 작성하려고합니다. 직렬 I/O 루틴은 BASIC으로 작성되었으며 .ocx 파일에 포함되어 있습니다. 이전에는 VB6 스크립트에서 호출되었습니다.Matlab의 OCX 라이브러리에서 명령어 사용

나는 matlab에서 .ocx 파일의 스크립트를 호출하고 거기에서 모든 후 처리를 할 수 있기를 바란다. 내가 matlab에 액티브 X 컨트롤을 연구했지만 그 GUI와 그런 것들에 초점을 맞춘 것 같습니다.

이러한 기능을 matlab에 가져 오는 방법이 있습니까? 또는 함수를 다른 것으로 컴파일해야 할 필요가 있습니까?

감사합니다.

답변

2

이 경우 actxcontrol 함수를 사용할 수 있어야합니다. 참조 :

http://www.mathworks.com/help/techdoc/ref/actxcontrol.html

ActiveX 컨트롤 (일명 * .OCX)는 일반적으로 GUI 목적으로 예정되었다, 그러나 그들은 될 필요가 없습니다. actxcontrol에는 여러 개의 생성자가 있습니다. 처음에는 컨트롤의 progid 만 필요합니다 (다른 오버로드는 GUI 유형 컨트롤의 위치를 ​​지정합니다).

그런 다음 interfacesinvoke 함수를 사용하여 OCX의 메서드를 호출 할 수 있습니다.

+1

필수 코멘트 : ActiveX/OCX는 심각하게 시대에 뒤진 기술입니다. 이것은 BASIC 코드에 캡슐화 된 로직을 가져 와서 더 현대적인 것으로 옮길 수있는 좋은 기회 일 수 있습니다. 그리고 나서 몇 년 동안의 노력을 할 수 있습니다. – MusiGenesis

+0

도움 주셔서 대단히 감사합니다! 이 모든 것이 시대에 뒤진 것에 대해 당신은 분명히 옳습니다. 불행히도 시간이 중요한 요소이므로 단기적인 해결책이 필요합니다. BASIC 코드에 포함 된 것을 제외한 직렬 통신에 관한 문서는 없으므로 (경험이없는 경우) 그래서 우리는 기존의 라이브러리를 사용하고자합니다. – James

+0

@James : 귀하의 상황을 이해합니다. 따라서 Matlab 코드를 .Net 어셈블리로 컴파일하고 직렬 포트 항목을 처리하는 C# 응용 프로그램에 통합하는 대안을 권장하지 않습니다. 이는 직렬 포트의 내용을 COM 객체로 캡슐화하고 Matlab 응용 프로그램에 포함시키는 것과는 정반대입니다. – MusiGenesis

관련 문제