Compiler / MEX using C help
    조회 수: 5 (최근 30일)
  
       이전 댓글 표시
    
Hi all,
I compiled a matlab function using the compiler toolbox into a dll, and I am trying to call it from my C program. For some reason, the program hangs at the mlfSimpsum(...) line below. Anyone see a mistake I made? The matlab function is very simple:
function c = simpsum(a,b)
c = a + b;
end
My C code:
#include <stdio.h>  
#include "main.h"
#include "SimpleSumDemo.h"
int main(void)
{
  mxArray *a_ptr, *b_ptr;
  mxArray *c_ptr=NULL;
  double *c;
  a_ptr =  mxCreateDoubleScalar(2);
  b_ptr = mxCreateDoubleScalar(7);
  /* Call the MCR and library initialization functions */
  if( !mclInitializeApplication(NULL,0) )
  {
    fprintf(stderr, "Could not initialize the application.\n");
    exit(1);
  }
  if (!SimpleSumDemoInitialize())
  {
    fprintf(stderr,"Could not initialize the library.\n");
    exit(1);
  }
  // Call the implementation function
  mlfSimpsum(1,&c_ptr,a_ptr,b_ptr);
  c =  mxGetPr(c_ptr);
  printf("2 + 7 = %d\n",&c);
  // Call the library termination function 
  SimpleSumDemoTerminate();
  // Clean up references (very important to prevent memory leaks!)
  mxDestroyArray(a_ptr);
  mxDestroyArray(b_ptr);
  mxDestroyArray(c_ptr);
  // Call the MCR termination function
  mclTerminateApplication();
  return 0;
}
댓글 수: 2
답변 (0개)
참고 항목
카테고리
				Help Center 및 File Exchange에서 C Shared Library Integration에 대해 자세히 알아보기
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
