【错误信息】：
error LNK2005: _DllMain@12 已经在 MSVCRTD.lib(dllmain.obj) 中定义

【分析原因】：
这篇文章：《https://support.microsoft.com/zh-cn/help/148652/a-lnk2005-error-occurs-when-the-crt-library-and-mfc-libraries-are-link 详细分析和说明了产生这种错误的原因。
    简单地说，就是产生错误的工程同时使用了CRT库和MFC库，并且链接顺序不对，CRT 库对 new、delete 和 DllMain 函数使用弱外部链接。MFC 库也包含 new、delete 和 DllMain 函数。这些函数要求先链接 MFC 库，然后再链接 CRT 库。

【解决方法】：
     在“项目 -> 属性 -> 链接器 -> 命令行”栏中，输入 /verbose:lib编译参数，这样，就可以在output窗口看到链接时搜索的库的先后顺序，对于本问题，你一定可以看到类似下面的先后输出：
>    Searching D:\vs2008\VC\lib\MSVCRTD.lib: 
>    Searching D:\vs2008\VC\atlmfc\lib\mfcs90ud.lib: 

     由此可以看出，默认情况下，先链接了CRT库MSVCRTD.lib，然后链接的是MFC的库mfcs90ud.lib，因此，需要强制改变一下它们的链接顺序。
     选择“项目 -> 属性 -> 链接器 -> 输入”栏，在其中的“忽略特定的库”这一栏输入：MSVCRTD.lib mfcs90ud.lib， 然后，在“附加库”这一栏中输入： mfcs90ud.lib MSVCRTD.lib  问题即可解决。






【错误信息】
protobuf默认VS编译出来的是dll动态库，而本项目中WxAdoInterface本身也是dll，WxAdoInterface调用protobuf，WxAdoInterface由WxService调用。
整个项目编译期间没有出任何问题，运行时报错：std::call_once被调用二次，导致google::protobuf::FatalException。


【分析原因】：
std::call_once被调用二次，说明有函数被执行二次，导致google::protobuf::FatalException。
可能原因是：WxService调用了一次protobuf初始化环境，而WxService再次调用WxAdoInterface又被初始化了一次。

【解决方法】：
将protobuf由dll改成lib方式链接.









