Main Content

calllib

C 공유 라이브러리의 함수 호출

설명

예제

[x1,...,xN] = calllib(libname,funcname,arg1,...,argN)은 C 라이브러리 libname의 함수 funcname을 호출하여 입력 인수 arg1,...,argN을 전달합니다. calllib 함수는 funcname에서 얻은 출력값을 x1,...,xN으로 반환합니다.

예제

모두 축소

라이브러리를 불러옵니다.

if ~libisloaded('shrlibsample')
   addpath(fullfile(matlabroot,'extern','examples','shrlib'))
   loadlibrary('shrlibsample')
end

함수 시그니처를 표시합니다.

libfunctionsview shrlibsample
[double, c_structPtr] addStructByRef(c_structPtr)

입력 인수는 c_struct 데이터형에 대한 포인터입니다.

MATLAB® 구조체 struct를 만듭니다.

struct.p1 = 4; struct.p2 = 7.3; struct.p3 = -290; 

함수를 호출합니다.

[res,st] = calllib('shrlibsample','addStructByRef',struct);

결과를 표시합니다.

res
res =
         -279

명령을 정리(Clean Up)합니다.

unloadlibrary shrlibsample

입력 인수

모두 축소

공유 라이브러리 이름으로, 문자형 벡터로 지정됩니다. libname에 경로나 파일 확장자를 포함시키지 마십시오.

alias 옵션을 사용하여 loadlibrary를 호출할 경우 libname 인수의 별칭 이름을 사용해야 합니다.

데이터형: char

라이브러리에 있는 함수의 이름으로, 문자형 벡터로 지정됩니다.

데이터형: char

funcname(있는 경우)에 필요한 1에서 N까지의 입력 인수로, 모든 유형으로 지정됩니다. funcname 인수 목록은 인수 유형을 지정합니다.

출력 인수

모두 축소

funcname(있는 경우)에서 가져온 1에서 N까지의 출력 인수로, 모든 유형으로 반환됩니다. funcname 인수 목록은 인수 유형을 지정합니다.

제한 사항

  • loadlibrary 함수를 사용하여 불러온 라이브러리와 함께 사용하십시오.

  • MATLAB은 funcname을 호출하기 전에 입력 인수의 데이터형에 대해 유효성을 검사합니다. MATLAB이 데이터형에 대한 오류 메시지를 나타내면 MATLAB 함수 시그니처를 확인하십시오. 예를 들어, funcname이 라이브러리 mylib에 있는 경우 다음을 입력하십시오.

    libfunctions('mylib','-full')

    funcname을 찾으려면 출력값을 스크롤하십시오. 자세한 내용은 라이브러리 문서를 참조하십시오.

    funcname을 호출할 때 이 함수가 오류를 표시할 수도 있습니다. 오류 메시지에 대한 자세한 내용은 라이브러리 문서를 참조하십시오.

버전 내역

R2006a 이전에 개발됨