2014年2月

计算机中程序的一次执行用进程来表示,计算机中多个进程同时共存从而实现了程序的并发执行。在每个程序中,所有任务都由一个进程来实现,效率会很低,所以我们引入线程的概念,它是程序执行的最小单元。比如,一个简单的GUI程序,为了有更好的交互性,通常用一个任务支持界面交互,另一个任务支持后台运算。

一、线程的创建
主线程(即main)创建一个子线程,之后执行线程函数内容,示例如下:

#include <stdio.h>
#include <windows.h>
DWORD WINAPI ThreadFun(LPVOID pM)
{
    printf("子线程ID:%d\n",GetCurrentThreadId());
    return 0;
}
//主函数,即主线程执行的函数
int main()
{
    printf("---多线程实例---\n");
    //CreateThread是Windows API接口
    HANDLE handle=CreateThread(NULL,0,ThreadFun,NULL,0,NULL);
    WaitForSingleObject(handle,INFINITE);
    return 0;
}

- 阅读剩余部分 -

通常在实现图像处理的算法时我们使用Matlab编程,因为它具有丰富的库函数以及操作方便,然而在工程项目中通常使用C/C++语言。如果我们将matlab代码完全重写成C++代码会很麻烦,最好的办法是借助matlab与C/C++接口将.m程序转成dll文件!

一、使用matlab将.m转成dll文件
1、在命令行中输入mex -setup
提示你是否要在本地安装matlab compilers,然后选择compiler类型,有matlab自带的编辑器以及检测到的其他编辑器,比如“Microsoft Visual C/C++ version 6.0 in E:Program FilesMicrosoft Visual Studio”,根据自己实际情况选择。

2、在命令行中输入mbuild -setup
这里的选项和上面类似,依次选择环境确定。

3、生成dll文件
一句命令mcc -W cpplib:add -T link:lib add.m
前面的add表示生成的dll文件名,后面的add.m顾名思义是.m文件名。生成后会多出8个文件,有用的是add.ctf add.dll add.lib add.h4个文件,据说新版的Matlab不会生成.ctf文件。

- 阅读剩余部分 -