Shared Library (dll) called by another Shared Library (dll)

1 view (last 30 days)
Hi all,
I'm dealing with a two-level-driver of some hardware which I'd like to control from MatLab. There are two dll files involved: Level1.dll seems to provide an API towards MatLab, Level2.dll seems to be linked dynaimcally ino Level1.dll.
I am capable of getting the information/ perform actions which require Level1.dll only. However, Level2.dll does not seem to be linked to...
Can MatLab deal with this? Where is my problem?
Thanks for your reply, Benjamin

Accepted Answer

Kaustubha Govind
Kaustubha Govind on 8 Feb 2012
Do you mean that you are using LOADLIBRARY and are seeing errors loading Level1.dll? Or do you mean that MATLAB loads Level1.dll, but you are unable to call into methods that require Level2.dll? If yes, what errors do you see.
Place Level2.dll also in the same directory as Level1.dll - see if you can run LOADLIBRARY from the directory containing both DLLs. Does this fix the issue?
  2 Comments
Benjamin Schwabe
Benjamin Schwabe on 14 Feb 2012
Thanks for your reply.
I am using LOADLIBRARY and I can access Level1.dll properly. However, Level1.dll returns errors when it wants to use Level2.dll. These errors are specific to Level1.dll and basically they say: "I can't find and load Level2.dll".
Both .dll files are in the same directory and this does not fix the issue.
What helped was loading Level2.dll first with the loadlibrary command and then Level1.dll. However, this results in a very unstable code and I have to restart Matlab with every 2 to 6 th command using the Level2.dll.
Kaustubha Govind
Kaustubha Govind on 14 Feb 2012
Did you try adding the path containing Level2.dll to the system PATH variable (you will need to restart MATLAB after doing this).

Sign in to comment.

More Answers (0)

Categories

Find more on Startup and Shutdown in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!