Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

Using a shared .dll library while making an executable

Asked by ryan on 15 Jun 2013

So i know in order to use the 'loadlibrary' function you need a c compiler. But what if i turn the matlab code calling the 'loadlibrary' function into an executable program and that program is used on a computer without a c compiler?

I am using 3 functions from a .dll library, but do not actually have the .c code, otherwise i could just make a mex function using the .c files.

Is it possible to compile a mex64 function with only the .dll library file, and the header file? If not is it possible to write a mex function that uses those files? I want to make the program as versitile as possible, but it needs to be called in matlab.

If anyone has any ideas on what a good way to approach this problem, or general info i would be very thankful.

0 Comments

ryan

Products

1 Answer

Answer by Walter Roberson on 15 Jun 2013
Accepted answer

http://www.mathworks.com/help/matlab/ref/loadlibrary.html

loadlibrary(libname,@protofile)

You can see how to generate the prototype file at http://www.mathworks.com/help/matlab/matlab_external/create-alias-function-name-using-prototype-file.html

That is, in a setup run on the development machine you would use the .h to generate the protofile; then the code you would compile would use the @protofile syntax on the already-generated file.

1 Comment

ryan on 18 Jun 2013

walter, This works nice and great, except I am having issues with the code still, and I am starting to think i might have something to do with the endianness. If i instead wrote the program i wanted in c++, and compiled a .mex64 function, once the function is written would i be able to run the program w/out the need for a c/c++ compiler?

Walter Roberson

Contact us