欢迎纠正,大神勿喷。

  最开始做项目的时候用的是VC6,使用到中途的时候需要将HBITMAP保存成jpg格式,这个功能VC6没有封装,自己实现起来很麻烦,而且完全没有必要,使用第三方库还要学习它的用法,浪费时间。而VC2008自带CImage类就有这个功能。在网上找了一个方法,使用VC2008将要使用的方法做成DLL,再供VC6的项目使用。用了这个方法,很成功。

  但是后来又有了一个问题,程序运行起来在我的电脑上没有问题,可是换到新的电脑就说找不到这个DLL,事实上明明已经把DLL放进去了。最后终于知道是因为那台电脑上没有装VC++2008的运行库,所以无法运行vc2008生成的的DLL,安装完之后就好了。

  在安装运行库的时候要注意以下几点:

  1.你选择安装32位还是64位的运行库,不在于目标计算机操作系统是32还是64,而在于你的程序是32还是64的,如果你的程序是32位的,那么即使你的目标电脑是64位操作系统,仍然要安装32位的运行库。

  2.运行库是有版本号之分的,有的程序做完后使用MFC安装项目集成的运行库,拿到新的电脑上安装,程序不能运行,同样是VC++运行库x86,需要安装最高版本号的运行库才能运行。我怀疑是程序中使用了只有高版本运行库才有的功能,具体是什么函数或者头文件导致的这个问题现在没搞清楚。

  3.当时有人告诉我在“静态库使用MFC”可解决第2点这个问题,我也尝试了,但是因为使用了std::list,于是弹出了一堆警告,虽然程序也能运行,但还是注意点的好,于是只能给程序配一个高版本号的运行库了。但是如果没有这些问题的话,又不想安装运行库,还是可以考虑改成“静态库使用MFC”这个选项。