社区
进程/线程/DLL
帖子详情
让动态链接库只能被调用一次的方法???
xiaoqiqixiao
2004-01-05 09:42:37
一个动态链接库,假设是ActiveX控件吧,希望只能被调用一次,有多少方法可以实现,最简单的方法是什么?
...全文
141
15
打赏
收藏
让动态链接库只能被调用一次的方法???
一个动态链接库,假设是ActiveX控件吧,希望只能被调用一次,有多少方法可以实现,最简单的方法是什么?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
victor_cui
2004-01-05
打赏
举报
回复
这么几行代码还嫌长,我晕倒,看来只有我告诉他了“不要起”~-~
xiaoqiqixiao
2004-01-05
打赏
举报
回复
checkyvc6(checkyvc6) 说的不是很详细,但用共享内存肯定是可以的,就是好象复杂了些吧
victor_cui(夕阳) 的方法应该是可以用的,就是不知道有没有更简单的,呵呵
sevencat
2004-01-05
打赏
举报
回复
基于一个字符串创建一个事件
zhaolaoxin
2004-01-05
打赏
举报
回复
在dll中设置一个静态变量,启动时进行判断是否大于1,若大于1则退出,否则该静态变量加1。
victor_cui
2004-01-05
打赏
举报
回复
加bool变量是不行的,因为每个副本加载不会共享这个变量,所以无效,简单的方式是建立一个具名的内核对象,什么都行,比如event, mutex, ....,常用的大多用mutex
HANDLE mymutex = CreateMutex(NULL,TRUE, "my activex");
if(ERROR_ALREADY_EXISTS == ::GetLastError())///说明已经被调用了一次
{
exit(0);
}
yintongshun
2004-01-05
打赏
举报
回复
在你调用的地方加上BOOL型变量,加载了设置为TRUE,否则为FALSE,如果再加载先判断一下如果变量为TRUE,则不再加载
xiaoqiqixiao
2004-01-05
打赏
举报
回复
这里,先就写注册表和写文件的提个醒,这种方法得首先保证你的程序不会中途中断,包括停电等等外部故障,否则,你下次启动将会一次都无法调用了,
其实基本的方法都在共享内存上,我其实是想知道,那个一般的ActiveX不是都有一个m_nRef吗?有没有什么方法可以得到这个Ref,这样我不是就能知道有多少程序在调用我的DLL了吗?
checkyvc6
2004-01-05
打赏
举报
回复
写本地或者内存映射也可以实现吧
xiaoqiqixiao
2004-01-05
打赏
举报
回复
那个,这个,对DLL实在不是很熟悉,共享代码段在哪里啊?
kingzai
2004-01-05
打赏
举报
回复
在共享代码段里使用一个BOOL变量,进行互斥
hujun4u
2004-01-05
打赏
举报
回复
写注册表吧
xiaoqiqixiao
2004-01-05
打赏
举报
回复
哎,那也没法了,只能如此
谢谢大家支持,就此结了吧
sevencat
2004-01-05
打赏
举报
回复
victor_cui(夕阳) 说得对,这可能是最常用的一种办法了,也是最简单的一种办法了。
yongdu
2004-01-05
打赏
举报
回复
共享段做个变量
写注册表项或者写.ini
xiaoqiqixiao
2004-01-05
打赏
举报
回复
呵呵,抱歉,抱歉,因为感觉上用到这种内核量,好象有一种劳师动重的感觉,所以。。。
倒不是说代码长和短的问题
windows
动态链接库
的使用,隐式
调用
(静态链接)和显示
调用
(动态链接)
动态链接库
Linux C语言
调用
C++
动态链接库
如果你有一个c++做的
动态链接库
.so文件,而你只有一些相关类的声明,那么你如何用c
调用
呢,别着急,本文通过一个小小的例子,让你能够很爽的搞定. 链接库头文件: //head.h class A { public: A(); virtual ~A(); ...
关于
动态链接库
占用内存的思考
我们知道在
调用
动态链接库
的时候,有两种
方法
,一种是在编译的时候,将
动态链接库
动态的编译进去;一种是在执行的时候使用dlopen的方式,
调用
动态连接库。那么两种会有什么区别呢? 1、在编译的时候,将
动态链接库
...
Qt
调用
C++
动态链接库
--导出类
经过多次尝试,Qt
调用
C++生成的
动态链接库
导出类,
只能
是多态类型的类 导出DLL的
方法
参考这篇文章C++生成DLL
动态链接库
1.生成导出类 #pragma once #ifndef DLL_IMPORT #define API __declspec(dllexport) #...
java
调用
DLL(
动态链接库
)
1.加载
动态链接库
public static String strFilePathSmartDevice = "C:\\Windows\\System32\\JsBin\\SmartDevice.dll";//dll所在目录 // public static String strFilePath = System.getProperty(&...
进程/线程/DLL
15,471
社区成员
49,182
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章