主题:MFC调用.m文件生成的dll文件
因为需要用MFC调用已经进行了仿真的MATLAB的.m文件,但是做测试时MFC编译无错,但是在执行时内存泄露。具体.m代码如下:
function[]=processgrayimage()
[name,path]=uigetfile({'*.bmp','请选择一个位图文件(*.bmp)'},'请打开一个位图文件');
file=strcat(path,name);%将选中图像文件名与图像文件所在文件路径连接;
[l,map]=imread(file);%用imread()读入位图文件;
if size(l,3)==3%将RGB图像转化为灰度图像;
l=rgb2gray(l);
end
l=double(l);%将图像数据转化为double型数据,这里了l当做矩阵处理;
l1=l-100;%100作为灰度的基准值;
signl1=sign(l1);
coefl1=(signl1+abs(signl1)/2);
l1=l.*1-coefl1;
l2=l.*(1-coefl1);
l1=(l1/max(max(l1)))*225;
l2=(l2/max(max(l2)))*225;
%将数据转化为unsigned int以方便显示。
l1=uint8(l1);
l2=uint8(l2);
%开始制图
figure;
%显示第一个子图
h1=subplot(1,2,1);
subimage(l1);
%显示第二个子图
h2=subplot(1,2,2);
subimage(l2);
truesize;
%subplot(1,2,1)中的参数分别表示为:显示窗口可显示的图片行数(窗口课现实几行图片),可显示的图片列数,
具体的MFC调用代码为:
HINSTANCE DLL_Handle;
typedef void (PASCAL *DLLTEST)();
DLLTEST Dlltest;
DLL_Handle=LoadLibrary("D:\\processgrayimage.dll");
Dlltest=(DLLTEST)GetProcAddress(DLL_Handle,"processgrayimage");
Dlltest();
FreeLibrary(DLL_Handle);
请问谁能给我一个完整的调用过程吗?是否还需要在工程中导入某些库文件之类的东东?
function[]=processgrayimage()
[name,path]=uigetfile({'*.bmp','请选择一个位图文件(*.bmp)'},'请打开一个位图文件');
file=strcat(path,name);%将选中图像文件名与图像文件所在文件路径连接;
[l,map]=imread(file);%用imread()读入位图文件;
if size(l,3)==3%将RGB图像转化为灰度图像;
l=rgb2gray(l);
end
l=double(l);%将图像数据转化为double型数据,这里了l当做矩阵处理;
l1=l-100;%100作为灰度的基准值;
signl1=sign(l1);
coefl1=(signl1+abs(signl1)/2);
l1=l.*1-coefl1;
l2=l.*(1-coefl1);
l1=(l1/max(max(l1)))*225;
l2=(l2/max(max(l2)))*225;
%将数据转化为unsigned int以方便显示。
l1=uint8(l1);
l2=uint8(l2);
%开始制图
figure;
%显示第一个子图
h1=subplot(1,2,1);
subimage(l1);
%显示第二个子图
h2=subplot(1,2,2);
subimage(l2);
truesize;
%subplot(1,2,1)中的参数分别表示为:显示窗口可显示的图片行数(窗口课现实几行图片),可显示的图片列数,
具体的MFC调用代码为:
HINSTANCE DLL_Handle;
typedef void (PASCAL *DLLTEST)();
DLLTEST Dlltest;
DLL_Handle=LoadLibrary("D:\\processgrayimage.dll");
Dlltest=(DLLTEST)GetProcAddress(DLL_Handle,"processgrayimage");
Dlltest();
FreeLibrary(DLL_Handle);
请问谁能给我一个完整的调用过程吗?是否还需要在工程中导入某些库文件之类的东东?