기준 MATLAB R2007b
비주얼 스튜디오 2005

0. 필요한 m파일을 먼저 만든다.
1. MATLAB 프롬프트에서 다음과 같이 한다
mcc -B macro_default -W cpplib:매트랩함수이름 -T link:lib -v 매트랩함수이름.m
-> 지정된 폴더에 매트랩함수이름.xxx 라는 파일들이 많이 생긴다.
2. 1에서 생긴 파일을 구성하고자 하는 VC Project 폴더로 옮긴다.
(DLL, CTF 파일은 반드시 debug 폴더 - 실행파일이 있는 폴더 -에 있어야 하며,
다른 파일들은 임의의 장소에 옮겨놓고, VS의 PROPERTY에서 디렉토리를 지정해준다(다음 설명 참조)
3. PROPERTY에서 두가지 폴더 지정 및 LIB 등록
 3-1. Configuration Property의 C/C++에서
        Additional Include Directory에서 매트랩함수.h 가 있는 폴더를 지정해준다.
 3-2.  Linker의 General의 Additional Library Directories에서 매트랩함수.lib가 있는 폴더를 지정해준다.
 3-3. Linker의 Input의 Additional Dependencies에서 mclmcr.lib(공통) 매트랩함수.lib라고 적어준다
4. 사용하고자 하는 cpp파일 상단에 #include "매트랩함수.h"라고 적어준다
  -> 이렇게 하며  MATLAB DLL을 사용하기 위한 준비는 완료된다.
 4-1. 만일 이 상태에서 VS컴파일이 안되는 경우는 MATLAB의 기본 폴더가 지정이 안되어 있는 것이다.
     VC++에서 TOOLS의 Options에서 Projects and Solutions에서
     VC++ Directories에서 우측에 콤보 박스마다 다음과 같이 추가해준다
 4-2. Executable 콤보에서
      %매트랩 깔린 위치%bin\win32 추가
 4-3. Include Files 콤보에서
      %매트랩 깔린 위치%extern\include 추가
      %매트랩 깔린 위치%extern\include\win32 추가
 4-4. Reference.. 없음
 4-5. Library Files 콤보에서는
      %매트랩 깔린 위치%extern\lib\win32\microsoft 추가
5. 사용하고자 하는 함수는 매트랩함수.h에 들어 있다. 참조하면 된다
    인자를 살펴보면,
    MATLAB의 MATRIX를 사용하기 위해서 C++의 mwArray 라는 클래스를 사용한다
    함수를 사용하기전 반드시 처음에
    mclmcrInitialize() 호출
    mclInitializeApplication() 호출
    매트랩함수Initialize() 호출 (앞부분이 함수 이름으로 정해짐)

    이후에 변수의 입출력을 위한 double, int 등을 포인터로 만들고 
    mwArray 클래스의 SetData를 이용하여 mwArray 형으로 바꾸고
    함수에 mwArray를 입출력 인자로 지정해서 결과 값으로 얻고 다시 포인터로 만들어진 double, int 등을 GetData로 얻어서 사용하면 된다
Posted by 곰돌이만세
,