有关dll的一些知识

曾作了一个双目视觉的程序框架,里面只有视频流的采集获取图像的帧是很实在的,而图像处理部分,也就是真正的双目视觉部分,是虚的。但是由于视频流的采集用的是directshow技术,如果对程序进行编译,就需要电脑上安装了sdk,所以,当图像处理的程序编好后,整个程序就都要在我的电脑上在重新编译一次。但是,由于另一个和我合作的女孩的电脑上没有安装sdk,所以,只能在我的电脑上进行编译,这是不方便的。

由于,当时在做这个程序框架的时候,就已经考虑了代码之间的可分离问题,视频流的采集和双目视觉其实是用不同的类来实现的,所以,就考虑单独把双目视觉分开,做成一个dll。这样,我就可以把编译好的仅仅包含视频流采集的程序的框架给那个女孩,那个女孩可以自己把自己的图像处理的那部分代码加到dll中,在她自己的电脑上重新编译dll,用新生成的dll代替旧的dll就可以了。

把类做为dll很简单,只要在声明中,符合下面这样的模式就可以了。

class AFX_EXT_CLASS CMyClass

但是要注意的是,要用MFC扩展dll,不能用win32 dll。并且要把头文件(也就是你要在别的程序里面调用的函数定义所在的文件)copy一份出来,放到要调用dll的程序中,并在这个程序中include。而且要在项目的设置的属性页里面的配置属性,下面的链接器,输入,附加依赖项里面添上libname.lib。这个lib和dll是同时由你的那个dll项目编译的时候生成的,不要忘了把它们拷贝到需要的调用它们的程序所在的文件夹中。

你可能感兴趣的:(有关dll的一些知识)