让动态链接库只能被调用一次的方法??? 一个动态链接库,假设是ActiveX控件吧,希望只能被调用一次,有多少方法可以实现,最简单的方法是什么? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在共享代码段里使用一个BOOL变量,进行互斥 那个,这个,对DLL实在不是很熟悉,共享代码段在哪里啊? 这里,先就写注册表和写文件的提个醒,这种方法得首先保证你的程序不会中途中断,包括停电等等外部故障,否则,你下次启动将会一次都无法调用了,其实基本的方法都在共享内存上,我其实是想知道,那个一般的ActiveX不是都有一个m_nRef吗?有没有什么方法可以得到这个Ref,这样我不是就能知道有多少程序在调用我的DLL了吗? 在你调用的地方加上BOOL型变量,加载了设置为TRUE,否则为FALSE,如果再加载先判断一下如果变量为TRUE,则不再加载 加bool变量是不行的,因为每个副本加载不会共享这个变量,所以无效,简单的方式是建立一个具名的内核对象,什么都行,比如event, mutex, ....,常用的大多用mutexHANDLE mymutex = CreateMutex(NULL,TRUE, "my activex");if(ERROR_ALREADY_EXISTS == ::GetLastError())///说明已经被调用了一次{ exit(0);} 在dll中设置一个静态变量,启动时进行判断是否大于1,若大于1则退出,否则该静态变量加1。 checkyvc6(checkyvc6) 说的不是很详细,但用共享内存肯定是可以的,就是好象复杂了些吧victor_cui(夕阳) 的方法应该是可以用的,就是不知道有没有更简单的,呵呵 共享段做个变量写注册表项或者写.ini victor_cui(夕阳) 说得对,这可能是最常用的一种办法了,也是最简单的一种办法了。 WaitForSingleObject不起作用 我的双缓冲定时刷新1小时后让系统非常卡,是什么资源没释放吗,代码下面 读文件的问题,如何每次读取指定长度,读过得不再读取! 再问 VC++6.0 编译无法终止的问题! 这条SQL语句是什么意思? [急]调用DLL时取不到函数指针,分不够再开贴加 请教如何使用类:MicrosoftDNS_ResourceRecord 向高手请教:怎样调用实例句柄HINSTANCE 新手的关于网络编程问题,请各大侠不吝赐教! 买的书被人弄丢了,现在想查一下东东,买又犯不着了,谁能提供的下载地址?英文尤佳,谢谢~~~ 怎样设置按钮的颜色? 请指点新手!
其实基本的方法都在共享内存上,我其实是想知道,那个一般的ActiveX不是都有一个m_nRef吗?有没有什么方法可以得到这个Ref,这样我不是就能知道有多少程序在调用我的DLL了吗?
HANDLE mymutex = CreateMutex(NULL,TRUE, "my activex");
if(ERROR_ALREADY_EXISTS == ::GetLastError())///说明已经被调用了一次
{
exit(0);
}