Invalid MEX-file
Show older comments
I try to run old utility on matlab 7 and get an error "Unable to load mex file: readchan.dll. Invalid MEX-file readchan.dll'" .is there a solution ?
Answers (2)
Image Analyst
on 7 Nov 2015
Do you have a prototype file or .h file for it? Here's how I load a DLL I use from Measurement Computing Corporation:
% A deployed (compiled) application, must use a prototype file instead of a header file.
% A source code file can either do it this way or use a .h file.
% To create the prototype file you must use the loadlibrary mfilename option.
% Use the prototype file in compiled code.
% Create prototype file, mxproto.
% hfile = fullfile(matlabroot,'extern','include','matrix.h');
% loadlibrary('libmx',hfile,'mfilename','mxproto')
% MATLAB creates the file, mxproto.m, in the current folder.
% loadlibrary('cbw64', hFileName, @cbw_prototype_file)
fprintf('Loading MCC library with prototype file ...\n');
[notFound, warnings] = loadlibrary('cbw64', @cbw_prototype_file);
Then, later when I want to call a function in the DLL:
% Call the "cbDBitIn" function in the DLL to check the state of the pin.
% int EXTCCONV cbDBitIn (int BoardNum, int PortType, int BitNum, USHORT *BitValue);
% The board checks the pin voltage 30 times per second.
[errorCode, BitValue2] = calllib('cbw64', 'cbDBitIn', BoardNum, PortType, BitNum, BitValue);
2 Comments
yaakov bar-on
on 8 Nov 2015
Image Analyst
on 8 Nov 2015
64 bit MATLAB cannot run 32 bit DLL's. I have an old 32 bit DLL and whenever I need to use that program I need to switch to 32 bit MATLAB.
Walter Roberson
on 8 Nov 2015
1 vote
32 bit dll cannot be used with 64 bit versions of MATLAB. You will need to get a version built for 64 bit MATLAB.
1 Comment
yaakov bar-on
on 8 Nov 2015
Edited: yaakov bar-on
on 8 Nov 2015
Categories
Find more on MATLAB Compiler 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!