问题标签 [interop]

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 投票
3 回答
2996 浏览

visual-studio-2008 - 如何在 Visual Studio 2005 中使用 .NET 3.0?

我的 Google-fu 在这个问题上让我失望了。

我有一位同事在他的机器上安装了 Visual Studio 2005。我有 Visual Studio 2008。他想打开一个我用 C# 3.0 编写的项目,我们已经做到了这一点,但是 VS2005 对 3.0 代码有问题,比如var.

他安装了 3.0 和 3.5 框架,以及 Visual Studio 2005 Extensions for Windows Workflow。他还需要什么?还是我们在追求一个失败的事业,一场疯狂的追逐,因为我认为我听说有一次在某个地方这是可能的?

请不要建议他安装 VS2008 或 Express 版。这在这个时候根本是不可能的。:(

0 投票
3 回答
770 浏览

winforms - 当应用程序关闭时,无模式的 VB6 应用程序如何进行清理?

一个 VB6 应用程序正在使用 Interop Forms Toolkit 来处理用 .NET 编写的表单。工具包的文档建议在 VB6 应用程序关闭时调用工具包上的方法来通知工具包。

VB6 应用程序使用加载初始屏幕的 Sub Main 过程,然后显示几个无模式窗体。当 Sub Main 完成时,应用程序仍在运行。应用程序如何检测到它正在关闭并调用 Toolkit 上的清理方法?

0 投票
1 回答
1142 浏览

.net - 在混合的托管/非托管进程中转储 CCW 和 RCW

我有一个混合的托管/非托管环境(Visual Studio 和 ReSharper),我怀疑 CCW 或 RCW 泄漏。有没有办法转储所有当前分配的包装器并识别它们的源/目标?我有 WinDbg、SOS 和 SOSEx,所以我可以使用 !syncblk 命令查看 RCW 和 CCW 的总数。我只想查看对象,所以我可以对它们调用 !gcroot 并检查嫌疑人。

0 投票
4 回答
19924 浏览

c# - 从 C# 注册一个自定义的 win32 窗口类

我有一个用 WPF 编写的新应用程序,它需要支持一个旧 API,允许它接收已发布到隐藏窗口的消息。通常,另一个应用程序使用 FindWindow 来使用其自定义窗口类的名称来识别隐藏窗口。

1)我假设要实现一个自定义窗口类,我需要使用老式的 win32 调用?

我的旧 c++ 应用程序使用 RegisterClass 和 CreateWindow 来制作最简单的隐形窗口。

我相信我应该能够在 c# 中做同样的事情。我不希望我的项目必须编译任何非托管代码。

我尝试从 System.Windows.Interop.HwndHost 继承并使用 System.Runtime.InteropServices.DllImport 来引入上述 API 方法。

这样做我可以成功地在 WPF 中托管一个标准的 win32 窗口,例如“列表框”。但是,当我为自定义窗口调用 CreateWindowEx 时,它总是返回 null。

我对 RegisterClass 的调用成功,但我不确定应该将 WNDCLASS.lpfnWndProc 成员设置为什么。

2)有谁知道如何成功地做到这一点?

0 投票
1 回答
810 浏览

java - J2ME Hessian 限制的解决方法?

Hessian 的官方 J2ME 实现似乎有严重的限制:不支持复杂的对象。
在线文档的任何地方都没有提到这个限制,但是如果你用谷歌搜索“hessian j2me”,你会发现关于这个问题的帖子。虽然谷歌没有找到解决方案。有没有人有这个问题的解决方案?是否有用于 J2ME 的 Hessian 的替代实现?
我想避免从 Hessian 获取字符串,然后做一些 JSON/XML 解析来获取对象......

0 投票
7 回答
3594 浏览

php - 在同一个应用程序中结合 Lisp 和 PHP 代码

目前,我为 Web 开发的几乎所有东西都使用 PHP,但它的语言限制开始让我烦恼。然而,当我开发了一些实践并维护了一些对我有很大帮助的 PHP 库时,我觉得我还没有准备好切换到 LISP 来丢弃我所有的 PHP 输出。在我只能访问常规 LAMP 托管帐户的服务器上,这甚至是不可能的。

因此,我的问题是:LISP 代码可以与 PHP 代码结合使用吗?是否有并行 LISP/PHP 的解决方案,它们的互操作性接口或可能只是一个实现另一个?或者它是一个相互排斥的选择?

0 投票
2 回答
2392 浏览

c# - 正确使用 P/Invoke

我需要从 c# 调用一个外部 dll。这是标题定义:

我在 C# 中添加了枚举和调用:

这会生成 AccessViolationException。我知道 dll 正在“工作”,因为我还添加了一个GetHandle返回hHandle上述内容的调用。我试图将参数更改为int( ref int watchmode) 但得到相同的错误。有谁知道我如何 PInvoke 上述调用?

0 投票
3 回答
2176 浏览

c# - 从通过反射调用的 COM 方法中检索原始错误号

我有一个 VB6 COM 组件,我需要从我的 .Net 方法中调用它。我使用反射来创建 COM 对象的实例并以下列方式激活它:

我需要使用 GetTypeFromProgID 而不是使用 tlbimp 来针对 COM DLL 创建一个库,因为我需要实例化的类型的 ProgId 可能会有所不同。然后我使用 Type.InvokeMember 在我的代码中调用 COM 方法,例如:

我捕获任何引发的 TargetInvocationException 进行日志记录,并且可以从 TargetInvocationException.InnerException 字段中获取详细的错误描述。但是,我知道 COM 组件使用 Error.Raise 来生成错误号,我需要以某种方式在我的调用 .Net 应用程序中获取它。

问题似乎源于 TargetInvocationException 不包含错误号,正如我所期望的那样,如果它是一个正常的 COMException 则:

如何从我的 .Net 代码中的 COM 对象获取错误号?

或者

当 COM 组件失败时,我能否以一种会导致 COMException(包含错误号)而不是 TargetInvocationException 的方式进行相同的调用?

另请注意,目标平台是 .Net 2.0,我确实可以访问 VB6 源代码,但会认为将 VB6 引发的错误消息更改为包含错误代码作为文本的一部分有点像 hack。

0 投票
5 回答
6766 浏览

c# - 如何在没有互操作程序集的情况下创建 Microsoft Jet (Access) 数据库?

我需要在不使用 ADOX 互操作程序集的情况下创建一个访问 (mdb) 数据库。

如何才能做到这一点?

0 投票
1 回答
2117 浏览

java - MainSoft Grasshopper,.Net 到 Java

我刚刚偶然发现了 MainSoft 的Grasshopper,它声称可以将 .Net ILM 交叉编译为 Java 字节码。它似乎使用 .Net 库的 Mono 实现。所有示例都涉及 Web 应用程序,但我的要求是将 .Net API(类库)交叉编译为 Java API,以便 Java 客户端可以使用该 API。有没有人有使用 Grasshopper 的经验,你能看出我的计划有什么问题吗?