高分求解!关于vs.net2003编译的com组件自注册的问题
我用vs.net2003编译了一个atl com组件,这个组件在安装了.net环境的计算机上可以用regsrv32注册,但在没有.net环境的计算机上就注册失败。请问要如何设置编译参数才能让vs.net2003编译出来的dll不依赖于.net环境呢(就好像vb6.0编译出来的dll一样)?我用的编译命令行如下:
/O2 /D "WIN32 " /D "_WINDOWS " /D "NDEBUG " /D "_USRDLL " /D "_ATL_ATTRIBUTES " /D "_WINDLL " /D "_ATL_STATIC_REGISTRY " /D "_MBCS " /FD /EHsc /MD /GS /Yu "stdafx.h " /Fp "Release/AspPic.pch " /Fo "Release/ " /Fd "Release/vc70.pdb " /W3 /nologo /c /Wp64 /Zi /TP
请大侠赐教!
[解决办法]
release时,设置为 静态DLL来编译。
[解决办法]
vc2003 c++ 可以做不要.net 支持的程序,你不能注册考虑其它
例如:
你的方案里用没用到托管类库,还有vc2003 的mfc 和atl 都是升过级的,你的程序可能会依赖新版的mfc,和 atl 动态库。
你可以用depends看看你的程序所依赖的dll