最近遇到一个问题,公司提供给客户的动态链接库是用VS2008开发的,但是客户的开发环境是VC6,所以在提供客户API之前得确认VS2008开发的DLL在VC6开发环境下也可以正常的使用,不管是静态加载还是动态加载。这里涉及到用VC开发的应用程序调试VS2008开发的DLL的问题。
首先,用VS2008创建一个简单的动态链接库DLL(默认不选择支持ATL和MFC),主要代码如下:
再用VC6开发一个简单的Win32 Console Application,命名为StaticUseDLL,主要代码如下:
该应用程序采用静态方式加载库,所以要把DLL.dll,DLL.lib两个文件拷到StaticUseDLL工程目录下,并且在project/settings/Link中加入DLL.lib。
以下是关键的地方:
1.先把StaticUseDLL运行起来,在VS2008中选择调试/附加到进程,在“附加到”中选择本机代码,然后把StaticUseDLL进程附加进来,这时StaticUseDLL进程可以停掉。
2.把StaticUseDLL.exe复制到DLL/debug目录下。
3.接着在VS2008中点F5开始调试,断点设在“return 42;”处,这是会出现一个对话框叫“调试会话的可执行文件”,在可执行文件名中选择刚刚拷贝过来的StaticUseDLL.exe,
这时断点已经过来了,呵呵。