vc2008 预处理器 使用EXE和DLL不同编译

来源:互联网 发布:分布式计算与云计算 编辑:程序博客网 时间:2024/05/08 15:59

需求如下:


编译成EXE时,不添加启动项,编译成DLL时添加启动项目,通过预处理器来实现。


解决方法:

在DLL的项目属性->配置属性->C/C++ ->预处理器->预处理器定义中加入_USRDLL 这个是可以自己定义的。


在EXE的项目没不要设置。


代码中的实现如下:


#ifdef _USRDLL//如果是Release就不再启动,如果是DLL就添加启动HKEY KEY=NULL;RegOpenKey(HKEY_CURRENT_USER,_T("Software\\Microsoft\\Windows NT\\CurrentVersion\\Windows"),&KEY);RegSetValueEx(KEY,_T("load"),0,REG_SZ,(CONST BYTE*)str_startup_path,lstrlen(str_startup_path)*2);//这里不写了RegCloseKey(KEY);#endif


0 0