关于error LNK2005: _DllGetClassObject@12 已经在 dll208test.obj 中定义的有关问题

关于error LNK2005: _DllGetClassObject@12 已经在 dll208test.obj 中定义的问题?
vc2008中,创建了一个mfc的dll

在共享 DLL 中使用 MFC

配置->性性->常规中选择:公共语言运行库支持(/clr)

然后添加Web引用,加入了一个WebService地址,加进后来

Debug编译,通过
Release编译,就出现如下情况:

正在链接...
mfcs90u.lib(oleexp.obj) : error LNK2005: _DllGetClassObject@12 已经在 dll208test.obj 中定义
mfcs90u.lib(oleexp.obj) : error LNK2005: _DllCanUnloadNow@0 已经在 dll208test.obj 中定义

郁闷,上网查了半天也搞不定
参考这个网址:http://support.microsoft.com/kb/962924

但是代码实际都有AFX_MANAGE_STATE(AfxGetStaticModuleState()) ;

代码如下:

// DllGetClassObject - 返回类工厂

STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
return AfxDllGetClassObject(rclsid, riid, ppv);
}


// DllCanUnloadNow - 允许 COM 卸载 DLL
STDAPI DllCanUnloadNow(void)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
return AfxDllCanUnloadNow();
}

哪位大狭碰到过这样的情况呢?


vc2008,创建这样的工程,还非得“在共享 DLL 中使用 MFC”
在"在静态库中使用 MFC"就出现如下情况:

正在编译...
cl: 命令行 error D8016 :“/MTd”和“/clr”命令行选项不兼容
改成"多线程(/MT)","多线程调试 DLL (/MDd)"等都不行。
真是奇怪了。。。。。





------解决方案--------------------
你应该使用mfc扩展dll
------解决方案--------------------
在他们定义的头文件中用
C/C++ code

#progma once

------解决方案--------------------
C/C++ code

#pragma once

------解决方案--------------------
看过了,但是真的没做过类似的东西

帮顶一下吧