How to create a dll from a Matlab code
190 ビュー (過去 30 日間)
古いコメントを表示
Hello everyone,
I'm new on this forum, and I need your help on a problem.
I do not know if the title of the topic is very clear, so I will explain a little more my problem.
I made one or more functions on MATLAB in .m .
My goal is to use these function(s) via an editing HMI software. This software has a "function" that allows to import a dll library, then use one or more C functions by specifying different parameters.
So for that, I must first convert my .m in .c then create a dll all from Matlab ( because I have to add to MCR install the redistributable etc ...) tell me if I'm wrong, I'm discovering the dll ...
What I 've done for now :
I tried to use Matlab Coder to create a dll, stating clearly in the Build tab in settings , "C / C ++ Dynamic Library" for output type . Only I do not get a dll, but "only" the .h and .c files , here is an example of what I get:

With Matlab Compiler, I managed to create a dll from a .m code which gives me this:

I can import the dll library in the HMI software but I can not use functions included in the DLL , the software "does not find the function".
I am using Matlab R2012b .
If anyone sees what am I doing wrong ...
Thank you for helping me !
2 件のコメント
Ryan Livingston
2014 年 12 月 2 日
編集済み: Ryan Livingston
2014 年 12 月 2 日
Is the "Generate code only" check box checked on the "Build" tab? If you uncheck that, the generated code should be compiled into a DLL.
Farhad VISHKAEE
2016 年 6 月 22 日
編集済み: Farhad VISHKAEE
2016 年 6 月 22 日
Hello,
Using this technique, you will then need a wrapper to generate your DLL.
Please follow the instruction in this PDF which directly goes to a stand alone DLL:
https://www.mathworks.com/matlabcentral/answers/uploaded_files/31889/MATLAB%20-%20C.pdf
Good luck ;)
回答 (2 件)
Jorik
2014 年 12 月 4 日
MATLAB Coder and MATLAB Compiler are very different products, but both can indeed generate a DLL for interfacing with other applications. The product pages explain the use cases for these products quite well:
For MATLAB Coder the target must indeed be set to "C / C ++ Dynamic Library" in the project and the generated code must also be built (uncheck "Generate code only". The DLL is then generated in the codegen/dll/[project] directory, the following code generates a DLL for a shipping demo file hello_world.m
>> coderdemo_setup('coderdemo_hello_world');
>> codegen -config:dll hello_world
And then you should have a codegen/dll/hello_world/hello_world.dll.
1 件のコメント
Crystal Li
2019 年 2 月 19 日
I have the similar questions. May I ask how to do it? Thanks in advance!
https://ww2.mathworks.cn/matlabcentral/answers/445511-how-to-hybrid-programming-to-dll-file
0 件のコメント
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!