vc6.0环境下,在一个EXE宿主程序中创建一个组件时,当工程编译后,需编连注册代理存根,生成.dll文件,需要
nmake – f ***.mk(注意路径)
然后再用REGSVR32命令来注册上一步生成的.dll文件
REGSVR32 ****.dll(注意路径)
但由于(所建立的工程的编译器)CL /MIDL/nmake 版本不统一,会导致编连出现错误,解决方法如下:
step1—— 头文件StdAfx.h当中,做如下修改
#define STRICT
#ifndef _WIN32_WINNT
#define _WIN32_WINNT0x0500(将默认的0x0400改为0x0500,支持win2000以上版本编译器)
#endif
#define _ATL_APARTMENT_THREADED
step2—— 手动添加dllData.c文件并编译,编译时注意取消预编译头(project->settings->c/c++->cotagory: PrecompiledHesders->Not Using …),编译生成dlldata.obj文件
step3—— 修改****.mk文件内容,把所有_WIN32_WINNT 改为0x0500
step4—— 执行nmake –f****.mk,可生成****.dll,再REGSVR32 ****.dll进行注册