【发布时间】:2011-08-18 15:52:09
【问题描述】:
我正在使用 Qt 开发 Internet Explorer ActiveX 插件,并尝试让安装程序在继续之前确保插件未运行。解决此问题的标准方法是在应用程序中创建一个命名互斥体并尝试在安装程序中打开它。
当构建为独立的 .exe 时,这可以正常工作,但是当插件 DLL 由 idc.exe(注册服务器或处理类型库)或 IE 本身(在添加针对 argv[0] 的测试之后)加载时跳过 CreateMutex 进行 idc 运行),CreateMutex 调用崩溃。
我是这样称呼它的:
CreateMutex((LPSECURITY_ATTRIBUTES)MUTEX_ALL_ACCESS, FALSE, "mutex_name_here");
在 ActiveX 服务器的上下文中运行时是否会失败,但在独立运行时可以正常工作?我这里还有什么遗漏的吗?
【问题讨论】:
-
对这些演员放轻松。他们只让你闭嘴告诉你你做错了编译器。它并没有阻止你做错事。
-
是的。这就是我不理解我正在使用的功能并随机使用谷歌结果的结果。
标签: windows winapi activex mutex