小技巧:vs2005创建的atl工程由不支持mfc转换为支持mfc

笔者的写一个组件时,开始之初没有考虑到支持mfc,后来需要支持对话框设置,加入mfc支持,编译不通过,

1>AudioVista.obj : error LNK2005: _DllMain@12 已经在 mfcs80ud.lib(dllmodul.obj) 中定义
1>Debug/AudioVista.dll : fatal error LNK1169: 找到一个或多个多重定义的符号 

出现这个提示,根据笔者的猜想,在mfc库中已经定义了DllMain这个默认的处理函数,去掉atl生成的DllMain

将这段代码去掉后,就可以了,省得再去重建工程,加入文件麻烦。

//#ifdef _MANAGED
//#pragma managed(push, off)
//#endif
//
// DLL 入口点
//extern "C" BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
//{
// hInstance;
//    return _AtlModule.DllMain(dwReason, lpReserved);
//}
//
//#ifdef _MANAGED
//#pragma managed(pop)
//#endif
//

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值