问题标签 [interopservices]

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 回答
1681 浏览

blazor - 如何在 blazor Web 程序集中运行捆绑的 javascript 文件?

我将捆绑的脚本文件保存在 blazor_wasm 应用程序的 wwwroot 文件夹中。

  1. 我在 index.html 中使用脚本标签添加了文件
  1. 我已将 scripts.bundle.js 代码放入函数 callJS

    function callJS() {/** bundled js**/}

  2. 我在剃须刀页面中使用 js interops 调用了该函数,但这给出了错误

    /li>

这些是错误

异步方法的返回类型必须是 void、Task、Task、类似
任务的类型、IAsyncEnumerable 或 IAsyncEnumerator wasm_app

'Index.OnAfterRenderAsync(bool)':返回类型必须是 'Task' 以匹配被覆盖的成员 'ComponentBase.OnAfterRenderAsync(bool)' wasm_app

这是运行文件的正确方法还是我必须使用另一个生命周期事件?我正在使用敏锐的引导主题,它使用 webpack 生成捆绑的 js 和 css 文件。

0 投票
0 回答
39 浏览

c++ - 如果在 C++ 中打开两个应用程序会话,则互操作对象抛出异常

System::Runtime::InteropServices::Marshal::GetActiveObject(MyApplication);用来初始化我的互操作对象。当我打开两个应用程序会话并在第二个会话中调用互操作对象的函数时,它会引发以下异常 HRESULT 0x80010105:

在此处输入图像描述

有没有办法可以在两个会话中分别使用互操作对象?

0 投票
0 回答
34 浏览

c# - .netcore 应用程序在引用 c++ dll 时抛出 SEHException 异常

我创建了一个 c++ dll。我正在使用 System.Runtime.InteropServices。首先,我使用 .netcore 控制台应用程序测试了 dll,它成功运行。尝试使用 .netcore 应用程序引用它时,我得到一个 SEHException:外部组件已抛出异常:这是我引用 dll 的方式

0 投票
0 回答
52 浏览

c# - 无法将用 C++ 编写的 Dll 导入 C# .NetCore

我使用 C++ 编写了一个简单的 dll。当我将它导入 ac# .NetStandard 项目时,它可以正常工作。但是当我将它导入 c# .NetCore 项目时,它会引发异常 System.BadImageFormatException: An attempt was made to load a program with an incorrect format.

.NetCore 和 .NetStandard 的 DLL 导入代码相同

我该如何解决?

0 投票
1 回答
57 浏览

c# - 激活游戏窗口时出现 InteropServices.COMException 错误

为了像素搜索机器人的目的,我在我的窗口中添加了一个快捷键挂钩。突然它给出了一个错误。错误在这一行:

我无法激活游戏窗口。它可能与某些东西冲突,但我不知道是什么。

错误(土耳其语):

System.Runtime.InteropServices.COMException: 'Uygulama, giriş zaman uyumlu bir çağrı gönderdiği için giden bir çağrı yapılamıyor。(0x8001010D (RPC_E_CANTCALLOUT_ININPUTSYNCCALL))'

0 投票
1 回答
210 浏览

powershell - 将函数指针从 PowerShell 传递到 DLL

问题

我有一个导出以下函数的 DLL。

我正在使用 P-Invoke 从 PowerShell 调用 DLL。

在 PowerShell 脚本中,我WriteEntry定义了一个函数,每当Finalize调用WriteEntry函数指针时都需要调用它。


到目前为止我的方法

似乎正确的方法是围绕 PowerShell 函数创建一个 C 样式的包装器,将包装器作为函数指针WriteEntry传递给该包装器。Finalize

在做了一些调查之后,我发现了如何创建一个可以与非托管代码互操作的委托(请参阅如何将函数指针从 C# 传递到 C++ Dll?)。我创建了以下CallbackDelegate类型。我能够将它从 C# 代码传递到 DLL。现在,我需要一种 PowerShell 应用程序能够构造委托并将其传递给 DLL 的方法。


我被困在哪里

我不确定如何将 CallbackDelegate 委托包装在WriteEntryPowerShell 函数周围。

所以,我认为我需要回答的问题是,我们如何从 PowerShell 函数构造委托。如果这是一个 XY 问题,我希望我已经提供了足够的细节来指出正确的方向。

0 投票
0 回答
42 浏览

c# - 如何进入将结构作为指针返回的 C++ 函数的 C# 结构?

下面的简单示例看起来很自然,但是它没有从结构中获取正确的值。C++ 代码:

使用此函数的 C# 代码将是:

但是,它没有得到预期的结果:

值得澄清的是,如果 C++ 函数不返回指针,即不是 XY*,而是返回显式 XY,并且在 C# 中我将显式结构声明为 return,而不是 IntPtr,则它可以完美运行。然而,这不是我要找的,我需要它是一个指针,因为它将在 Emscripten 中用于 WebAssemply,并且它不接受显式结构作为返回。

感谢您的关注。

0 投票
0 回答
38 浏览

c - 如何在 SendInput 中使用 1x 扫描码作为参数

我正在使用带有扫描码作为参数的 SendInput()(使用 InteropServices,C#)。但是,我无法使用 R-ALT 发送组合。我正在使用带有 Bootcamp 的 Mac,并且 R-ALT 扫描码注册为 1x38(R-ALT + L-Control),但我不能使用 138(1x38?)作为扫描码参数(ushort/int)。

错误消息只是“当前上下文中不存在名称 x38”。

如何正确使用像 138 这样的扫描码作为 SendInput() 中的参数?