interop相关内容

我需要做什么来实现“out of proc"?C#中的COM服务器?

我正在尝试实现一个用 C# 编写的“out of proc"COM 服务器.我该怎么做? 我需要 C# 代码从我的主 C++ 应用程序中“脱离 proc",因为我无法将 .NET 运行时加载到我的主进程空间中 为什么? 我的 C++ 代码位于加载到许多不同客户 EXE 中的 DLL 中,其中一些使用不同版本的 .NET 运行时.由于只能将一个运行时加载到单个进程中,因此我最好的选择似 ..
发布时间:2022-01-14 11:46:45 C#/.NET

我可以通过 COM 从 VBA 调用 C# 类的静态方法吗?

如果我在 C#/.NET 类库中定义一个类,那么通过使其 COM 可见,我可以实例化该类并使用 COM 从 VBA 调用其方法. 有没有办法从 VBA 中调用此类的静态方法? 解决方案 COM不支持静态方法,COM对象的实例不调用静态方法.相反,在您的静态方法上设置 ComVisible(false),然后创建一个实例方法来包装它: [ComVisible(true)]公共课 Fo ..
发布时间:2022-01-14 11:43:03 C#/.NET

释放临时 COM 对象

考虑以下使用 COM 对象的 C# 代码. MyComObject o = 新的 MyComObject;尝试{var baz = o.Foo.Bar.Baz;尝试{//用 baz 做一些事情}最后{Marshal.ReleaseComObject(baz);}}最后{Marshal.ReleaseComObject(o);} 这将释放 COM 对象 o 和 baz,但不会释放 o.Foo ..
发布时间:2022-01-14 11:39:55 C#/.NET

无法使用已与其底层 RCW 分离的 COM 对象

我有一些从 c# dll 调用的 COM 组件. 我还有一个使用该 .dll 的 winforms 应用程序. 当我关闭应用程序时,我得到了这个异常: 已分离的 COM 对象从其基础 RCW 不能用过. 堆栈跟踪显示此异常来自 .dll 中的析构函数.我实现了这个析构函数来调用 COM 中的一些清理方法. 为什么会这样?怎么解决最好? 解决方案 问题描述如下: ..
发布时间:2022-01-14 11:38:31 C#/.NET

Excel 互操作:_Worksheet 还是 Worksheet?

我目前正在撰写有关动态类型的文章,并给出了 Excel 互操作的示例.我以前几乎没有做过任何 Office 互操作,它显示了.C# 4 的 MSDN Office Interop 教程 使用_Worksheet 接口,但也有 Worksheet 接口.我不知道有什么区别. 在我极其简单的演示应用程序(如下所示)中,两者都可以正常工作 - 但如果最佳实践要求其中之一,我宁愿适当地使用它. 使 ..
发布时间:2022-01-14 11:36:13 C#/.NET

哪些阻塞操作会导致 STA 线程泵送 COM 消息?

当在 STA 线程上实例化 COM 对象时,该线程通常必须实现消息泵,以便编组对其他线程的调用(请参阅 这里). 可以手动泵送消息,也可以依靠某些但不是全部线程阻塞操作会在等待时自动泵送与 COM 相关的消息这一事实.文档通常无助于确定哪个是哪个(请参阅此相关问题). 如何确定线程阻塞操作是否会在 STA 上泵送 COM 消息? 到目前为止的部分列表: 阻止进行抽水的操作* ..
发布时间:2022-01-14 11:35:29 C#/.NET

将简单的 C# DLL 转换为 COM 互操作组件

如何将 C# DLL 制作成可供 VB6 应用程序使用的 COM 互操作 DLL? 解决方案 这是我想在 StackOverflow 中找到但找不到的答案.事实证明,将简单的 C# dll 转换为 COM dll 相当容易. 创建 C# dll 使用 C# 类项目创建解决方案.该类应该有一个属性/方法的接口和一个事件的接口.将 GUID 属性分配给类和接口,如 MSDN - 示 ..
发布时间:2022-01-14 11:33:11 C#/.NET

使用 iso_c_binding 的 Fortran-C 桥中的字符串数组

我正在编写代码,该代码将使用 Fortran 的 C 互操作性机制(在 Fortran 2003 中引入并在较新版本的 gfortran 和 ifort 中实现)从 Fortran 调用 C 函数. 这个答案 几乎是我需要的,但我不太清楚我应该使用什么接口声明在 Fortran 中使用如下所示的 C 函数: int use_array(int n, char * array[]){诠释我; ..
发布时间:2022-01-14 10:05:12 其他开发

什么是互操作 dll?

我需要澄清一下.我有一个使用 Crystal Reports 的 Reportwriter dll.它是用VB6编写的.我必须将此 dll 添加到我的 asp.net 项目中,它会在其中创建一个互操作 dll. 据我了解,interop dll 作为中介存在,因此我的 .net 代码可以与 Reportwriter dll 对话. 那么我是注册互操作 dll 还是注册原始 dll? ..
发布时间:2022-01-13 14:16:54 C#/.NET

WPF TextBox 在窗口窗体中的 ElementHost 中不接受输入

我们正在 WPF 中开发一个 UI 控件,以便在现有的 Windows 窗体/MFC 应用程序引擎 (Rhino 3D) 中使用. 应用程序引擎公开了创建“Dockbar"的能力,这实际上让您可以将 Windows 窗体控件放在可以停靠到引擎界面的子窗口中. 我正在尝试将一个简单的 WPF 文本框放入 ElementHost 控件中,该控件已添加到 Dockbar.乍一看,这似乎工作正 ..
发布时间:2022-01-13 10:58:32 其他开发

如何在 CWnd 中调整 WPF 控件的大小?

我在 MFC CWnd 中托管 WPF UserControl.它工作得很好我现在需要弄清楚如何用它的父级调整控件的大小.我已经挂上了 OnSize 并且我正在调用 GetWindowRect 并将结果设置为我的控件,如下所示: void CChildFrame::OnSize(UINT nType, int cx, int cy){CRect 矩形;this->GetWindowRect(&r ..
发布时间:2022-01-12 15:11:18 C/C++开发

WinForms 互操作、拖动和从 WinForms 中删除 ->WPF

我正在尝试将数据从应用程序的 Winforms 部分拖到包含在“ElementHost"中的 WPF 控件上.当我尝试这样做时它会崩溃. 尝试同样的事情,但从 Winforms 到 Winforms 工作正常.(见下面的示例代码) 我需要帮助来完成这项工作...有任何线索我做错了什么吗? 谢谢! 示例: 在下面的示例代码中,我只是尝试拖动在 1) System.Windo ..
发布时间:2022-01-11 20:45:05 其他开发

快速访问 C 变量

我正在尝试访问在 .h 文件中声明的状态变量,但编译器说该变量不存在.我需要在桥接头文件中添加任何内容吗? 在我的 swift 文件中,我无法访问 dstate 或 cstate 编译器在 g722_coder_init(&dstate) 行上显示“使用未解析的标识符 'dstate'". 头文件 #ifdef __cplusplus外部“C"{#万一外部结构 g722_dst ..
发布时间:2022-01-11 16:26:36 移动开发

可以在 c# .net 中获取/设置控制台字体大小吗?

我看到了有关更改控制台真实类型字体、控制台颜色 (rgb) 的帖子,但没有看到有关设置或获取控制台字体大小的帖子.编辑:原因=网格输出到控制台,网格有很多列,更适合较小的字体,想知道是否可以在运行时更改而不是允许默认或配置的字体优先/覆盖继承. 解决方案 也许 这篇文章可以帮到你 ConsoleHelper.cs 使用系统;使用 System.Collections.Generic ..
发布时间:2022-01-11 09:00:48 C#/.NET

从 Winforms 控制 cmd.exe

问题:我想从winforms控制cmd.exe. 我并不是指单个进程中的每个命令,带有启动信息,然后停止. 我的意思是例如启动(我的)SQL 或 GDB 命令提示符、发送命令、接收答案、发送下一个命令、接收下一个答案、停止 SQL 命令提示符 退出进程. 基本上我想在任何控制台应用程序之上编写一个 GUI. 我希望将 cmd.exe 的输出重定向到一个文本字段,而输入来自 ..
发布时间:2022-01-11 08:43:13 C#/.NET

CUDA/OpenGL 互操作,使用 CUDA 绘制到 OpenGL 纹理

我正在用 CUDA 编写一个渲染系统,并希望通过 OpenGL 快速显示结果,而无需触及主内存.我基本上做以下事情: 创建并初始化OpenGL纹理,并在CUDA中注册为cudaGraphicsResource GLuint viewGLTexture;cudaGraphicsResource_t viewCudaResource;无效初始化(){glEnable(GL_TEXTURE_2D ..
发布时间:2022-01-10 16:13:35 其他开发

用于调用返回指针的 C 函数的 Fortran 接口

我有一个 C 函数, double* foofunc(){/* 函数体 */} 我不知道如何在Fortran中声明一个接口来调用这个C函数. 另外,如果一个指针应该指向 GPU 设备内存,我如何在 Fortran 接口中定义它?我需要使用 DEVICE 属性吗? 请使用 Fortran 直到 2003 年支持的功能. 有什么建议吗? 解决方案 既然你有 Fortran ..
发布时间:2022-01-10 15:45:57 其他开发

在构建服务器上注册 COM 引用的 DLL

我们正在开发一个引用一些 COM 库(例如 AutoIT)的 C# 应用程序. 我将源代码控制下的所有引用组件包含在第 3 方“Libs"文件夹中. 问题是 COM dll 在 .csproj 文件中没有 HintPath 属性,我假设这些必须使用 regsvr32(或使用某种脚本)手动注册. 我目前正在考虑创建一个将在每次构建之前运行的 MSBuild 脚本,但是我不知道是否应 ..
发布时间:2022-01-08 15:22:25 C#/.NET

从 .net 调用 R(编程语言)

我正在开发一个应用程序,该应用程序需要大量统计处理并将其输出为 .net 桌面应用程序中的图像.这些问题,包括生成输出图像,似乎很适合 R http://www.r-project.组织/ 是否有允许我从 .net 调用 R 的包装器、API、SDK 或端口? 解决方案 R.NET 在 R.NET 的较新版本中存在相当大的问题.如果它不能正常工作,它会工作得非常糟糕(并且会继续这样做 ..
发布时间:2022-01-07 23:01:49 C#/.NET