• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > 如何保证一个dll在内存中只有一个实例?

如何保证一个dll在内存中只有一个实例?

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了c#调用c dll实例,c#调用dll实例,java调用dll实例,labview调用dll实例,vba封装dll实例等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 如何保证一个dll在内存中只有一个实例?
描述:

我做了一个DLL,我希望这个DLL文件在有多个程序需要调用的时候,只有一个程序可以成功调用这个dll文件,其他的都无法调用。换种方法说,我希望这个DLL文件在内存中只有一份拷贝 
请问如何实现呢?
之前别人的答复:
BOOL WINAPI DllMain( 
  HANDLE hinstDLL, 
  DWORD dwReason, 
  LPVOID lpvReserved 
); 
dwReason值是DLL_PROCESS_ATTACH时做判断是第二次调用就返回FALSE; 
能不能具体点怎么做判断?怎么做判断是第二次调用?


解决方案1:

通常的做法


m_hMutex   =   OpenMutex   (MUTEX_ALL_ACCESS,   FALSE,   strClassName)   ;   
if   (m_hMutex   ==   NULL)   
{   
//   m_hMutex不存在,表示没有其它实例在运行,创建一个m_hMutex   
IsFirst = TRUE;
m_hMutex   =   CreateMutex   (NULL,   TRUE,   strClassName)   ;   
}   
else   
{   
   IsFirst = FALSE;
}         


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • dll能否封装模板类?无实例化、接口方式[老问题]
  • 为什么我包装的dll只能被一个用户调用
  • 调用自己写的dll出错,急!!!!解决马上给分,不够再加
  • 调用标准DLL的问题
  • 如何做让系统调用的DLL呢?
  • 为什么调用不了dll?
  • 调用一个DLL,编译时出错。
  • 马上给分!DLL之间可以互相调用吗?
  • 用C#编的dll中的类,可以在vc中被直接使用吗
  • 在dll中可不可以调用dll啊,要是能调用应该怎样作,请教

相关文章

  • 2017-06-05 获得系统中的运行中的应用程序后,如何得到相应的图标句柄!!!
  • 2017-06-05 怎么得到ProcesssID???
  • 2017-06-04 在COM里怎么定义常量?怎么抛出异常?(100分!!!)
  • 2017-06-04 CAxWindow创建webbrowser后,网页中无法使用ctrl+c,ctrl+v快捷健
  • 2017-06-04 ATL写的Com组件创建实例时报告错误“未注册类别”
  • 2017-06-04 大家都来看一看,一个关于COM的简单问题
  • 2017-06-04 请教高手:如何更好地理解COM的进程透明性?
  • 2017-06-05 Excel2010的列宽单位
  • 2017-06-04 对我说比较难的问题,详情请进!
  • 2017-06-04 有谁知道学习ATL好的地方?

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 如何使用mscommm控件发送0字符
    • 巨难问题:如何通过运行期间动态定义函数指针,来实现变参的dll调用?
    • exe调用DLL求助!!!关于对话框放置图片
    • 进程之间传输数据的所有方法有哪些?
    • 如何通过进程句柄得到进程id?
    • 为什么我只能生成lib不能生成dll
    • 如何从dll文件中导出lib件中??使用何种工具?
    • 如何继承Caxwindow让他的QueryControl每次调用自定义QueryInterface
    • 怎么自定义消息出错啊!
    • 用VC实现---信任站点检测方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有