问题标签 [activation-context-api]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
941 浏览

c++ - LoadLibraryEx 忽略并排清单

函数是否LoadLibraryEx使用并排清单?我有带有嵌入式 SxS 清单的 bar.dll,并且该清单描述了此 bar.dll 的版本,其他 dll 文件 foo.dll 具有将 bar.dll 列为依赖项的清单,并具有指定的版本。但是,当我尝试从 foo.dll 加载 bar.dll 时,LoadLibraryEx("bar.dll", NULL, 0)我看到(启用了带有 gflags 的 sls)它忽略了这些清单,并加载它在搜索路径中看到的 bar.dll 的第一个版本,如果我定义ISOLATION_AWARE_ENABLED并使用LoadLibrary它发现正确的版本,但这ISOLATION_AWARE_ENABLED不会影响 的行为LoadLibraryEx,我需要加载正确的版本,LoadLibraryEx因为LoadLibraryEx隐式用于延迟加载 dll。应该像这样LoadLibraryEx工作,还是我的项目配置有问题?

富dll

bar.dll

0 投票
1 回答
398 浏览

c++ - SxS 清单中的程序集标识名称

我有两个关于激活上下文 API 和 SxS 清单的问题。它们看起来很简单,但我仍然无法为它们找到任何好的答案。

我有两个文件名为 foo.dll 和 bar.dll 的 dll 库,它们都带有嵌入式清单,foo 取决于 bar。有没有办法为这两个分配文件名以外的 assemblyIdentity 名称?例如,如果我希望 bar.dll 的程序集标识为CompanyName.Subsection.bar?如果我像这样更改它的身份-尝试加载 foo.dll 时出现错误"Dependent Assembly CompanyName.Subsection.bar,type="win32",version="0.1.2.3" could not be found"。当然,如果我将名称程序集标识指定为文件名 ( <assemblyIdentity name="bar"),一切正常,但有没有办法使用这些带点的名称?

foo.dll

bar.dll

0 投票
0 回答
198 浏览

.net - 从 Java 应用程序中的非托管本机 C++ 库加载未注册的 .NET 程序集

我正在使用一个 Java 应用程序,该应用程序可以使用可能包含本机代码的自定义包进行扩展,因此除了添加扩展 jar 的能力之外,我无法控制 Java 环境。

在这种情况下,我需要能够从 Java 扩展调用 C# 代码。这是以前使用无注册 COM 从纯本机上下文中使用的 C# 代码 - 工作正常。现在我需要能够从这个 Java 上下文中使用相同的代码,但遇到了似乎无法控制应该在哪里找到 DLL 的问题。要求将 DLL 安装到 JRE/JDK bin 目录中显然不是一种选择,并且要求将 DLL 注册到 GAC 中也不理想。

目前我希望将所有 DLL 依赖项打包到扩展 jar 中,并在运行时需要时加载(无需手动安装步骤)。

我希望我可以使用 Activation Context API 来使其正常工作,并测试了此代码的许多变体,DLL 位于D:\somepath\

清单包含一个dependentAssembly,其中包含程序集的详细信息,其中包含对CoCreateInstance的调用引用的 C# 类。

还尝试了使用 mt.exe 从 DLL 转储的这种格式的清单:

CreateActCtxActivateActCtx调用成功,但CoCreateInstance调用总是失败,返回 0x80070002,除非我将 DLL 放在C:\Program Files\Java...

是否有任何解决方案(除了使用 GAC)允许完全非托管的 C++ DLL 从任意已知位置的 DLL 加载和创建 C# 类的实例?

0 投票
1 回答
481 浏览

windows - 如何指定使用已加载的并行程序集的哪个实例

我正在创建一个 dll ( A.dll),它是隔离的 ( ISOLATION_AWARE_ENABLED),依赖于dependency.dll并具有一个清单文件:

A.dll由应用程序加载,该应用程序app.exe本身依赖于不同版本的dependency.dll. 清单确保dependency.dll并排使用两个版本。到目前为止没有问题。

现在,A.dll通过. 从外部目录加载,取决于并且实际上需要使用已在内存中使用的版本。B.dllLoadLibraryB.dlldependency.dlldependency.dllA.dll

问题是使用了byB.dll的版本,因为这是已加载到内存中的具有该名称的模块的第一个版本。dependency.dllapp.exe

有没有办法强制B.dll使用dependency.dll已加载的版本A.dll

语言是 C++,如果相关的话。

0 投票
0 回答
92 浏览

delphi - DeactivateActCtx 在 Delphi Excel COM 加载项中引发错误

我正在使用 Delphi 和 Add-in Express VCL 开发 Excel COM 插件。为了在我的表单中启用主题,我使用了清单和激活上下文,正如 David Heffernan 在此处的回答中所写:

将 Windows 主题应用到 Office Com 加载项

根据链接的帖子,这是我的代码:

消息对话框正确显示(主题!)但是当调用 ActivationContext.Free 时(调用DeactivateActCtx(0, FCookie);)我得到以下异常:

EExternalException:外部异常 C000000D

请注意,出于演示目的,我在上面的代码中插入了 ShowMessage,通常我正在创建并显示具有相同结果的表单(错误)。

我怎样才能解决这个问题?


更新:这是有问题的清单:

我的资源文件:

包含 res 文件的代码:

AddinName 与 Delphi 项目的名称匹配是否重要?

还有一点需要注意:插件是为64 位 Excel 编译的。

0 投票
1 回答
989 浏览

reactjs - 在 React Native 挂钩中动态更新上下文

我正在尝试使用上下文 API 更新我的 react 本机应用程序的主题,但它抛出错误 setThemeMode is not a function。(在'setThemeMode(themeMode ==='light'?'dark':'light')'中,'setThemeMode'是“i”)

我参考了以下博客文章 https://www.smashingmagazine.com/2020/01/introduction-react-context-api/

主要错误图像

ThemeContext.js

应用程序.js

设置.js

导航.js

颜色.js

我想动态更新上下文。请原谅我这么愚蠢的错误,但我是新来的反应和 Js。我附上了问题图片。我认为我在useContext上做错了,因为当我尝试使用console.log(ThemeContext)时,它显示的是未定义而不是光。

0 投票
0 回答
552 浏览

javascript - using Context Api how to set initial state

I am fetching data from http://127.0.0.1:8000/api/todos receiving array using app level state how should i populate the initial state in Context API ?

enter image description here in this i am not getting state to other components but state is available in TodoState in React Tools

0 投票
0 回答
35 浏览

windows - Pyzo 未在 Windows 11 上启动

我的新电脑有问题。我刚刚得到它,使用 Windows 11 并安装 Pyzo(使用 Anaconda),当我启动 Pyzo 时,它是这样写的:

“应用程序无法启动,因为并排配置不正确 Windows 10”

当我检查事件查看器时,错误是

为“C:\Program Files\pyzo\pyzo.exe”创建激活上下文失败。清单或策略文件“C:\Program Files\pyzo\pyzo.exe”在第 15 行出错。应用程序元素显示为 urn 的子项:schemas-microsoft-com:asm.v1 element ^dependentAssembly; 此版本的 Windows 不支持这种情况。

一些想法来解决它?

谢谢

朱尔斯