一个dll的单身班
发布时间:2020-12-13 19:42:46 所属栏目:Windows 来源:网络整理
导读:我创建了一个类的静态库: class CLog{ private: CLog(); ... ... public: static CLog GetInstance() { static CLog Instance; return Instance; } void Write(char *cpPr);};#define Log CLog::GetInstance() 这个图书馆链接到一个dll和一个主程序.该DLL由
我创建了一个类的静态库:
class CLog { private: CLog(); ... ... public: static CLog& GetInstance() { static CLog Instance; return Instance; } void Write(char *cpPr); }; #define Log CLog::GetInstance() 这个图书馆链接到一个dll和一个主程序.该DLL由LoadLibrary加载.在这种情况下,显而易见的是,在主exe和dll中调用Log.Write会创建两个单独的CLog实例.任何想法如何解决这个问题,仍然提供动态加载dll?
问题是,连接静态库的每个项目(无论是主程序还是DLL)都将获得静态变量的单独副本.这打破了创建单身的典型方法.
最简单的方法是创建另一个保存单例的DLL,而不是一个静态库.由于只有一个链接器输出将包含静态变量,因此问题得到解决. 在我自己的情况下,我创建了一个单身经理,通过一个独特的GUID来识别每个单例,并确保只有一个副本存在于应用程序范围内.单身人士管理人员作为自己的DLL存在. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- windows – 我可以从DirectShow获取原始视频帧而无需播放
- 将现有的DotNetNuke门户迁移到windows azure
- 适用于小型办公室的Windows Server 2008上的VPN服务器
- Windows上的邮件服务器免费替代品
- windows-phone-7 – 使用Visual Studio 2012(RTM,Premium)为
- Win2003下IIS+PHP+MySQL+Zend配置步骤详解
- 有什么办法在Windows中制作虚拟桥接网络适配器?像VMware一
- 编译DLL时导出符号 – MSVC
- Windows批处理文件\u0026\u0026运算符
- microsoft-metro – 平铺中的Appname – 更新
推荐文章
站长推荐
- 10053 您的主机中的软件中止了一个已建立的连接
- Windows BAT 命令下del 与 rd 命令
- winapi – 在Windows上检索可用的字体大小
- Windows – 32位主机操作系统可以支持64位客户端
- windows – 使用winrm连接到远程服务器,而不将服
- 有没有快速的方法来创建文件的Windows快捷方式,而
- 通过Internet在Windows上安装Linux文件系统的最佳
- windows-phone-7 – 如何在模拟器中没有Internet
- Windows 7上的windows-7 – dnscmd等价物
- microsoft-sync-framework – Sync Framework 2.
热点阅读