interop相关内容
如何处理使用 pinvoke 从 C# 调用的 dll 方法中的可选 struct 参数?例如,lpSecurityAttributes 此处的参数 不存在时应传递null. struct 的正确传递方式似乎是使用ref,但它不能有可选参数,或者一般取null. 有哪些方法可以实现这一目标? 解决方案 你有几个选择 1) 使用 class 而不是 struct 我认
..
我需要使用 F# 与一些 C# 代码互操作.Null 是一个可能的值,因此我需要检查该值是否为空.文档建议使用模式匹配: 匹配值|空 ->...|_ ->... 我遇到的问题是原始代码在 C# 中的结构如下: if ( value != null ) {...} 如何在 F# 中执行等效操作?模式匹配是否有空操作?有没有办法用 if 语句检查 null? 解决方案 如果你不想在nu
..
F# powerpack 带有一组转换方法,可将 Func 转换为 F# 函数,标准函数或元组函数.但是否有可能实现相反的目标:如果您想从 F# 代码调用一个采用 Func 的 C# 方法,并想使用原生 F# lambda 表达式(例如 fun x -> some_function_of(x))? 如果我将带有签名 'a -> 'b 的 F# 函数发送到需要 Func 的 C# 方法,则 F
..
我正在玩 F# 和 C#,并想从 C# 调用 F# 代码. 通过在同一个解决方案中有两个项目,并将 C# 代码的引用添加到 F# 项目,我设法让它在 Visual Studio 中以相反的方式工作.完成此操作后,我可以调用 C# 代码,甚至可以在调试时单步执行. 我想要做的是来自 C# 的 F# 代码,而不是来自 F# 的 C# 代码.我向 C# 项目添加了对 F# 项目的引用,但它不
..
我在 Mac 上使用 GIT.说够了.我有工具,我有经验.我想继续使用它.这里没有战争... 问题始终在于互操作性.大多数人使用 SVN,这对我来说很棒.Git SVN 开箱即用,是一种简洁的解决方案.人们可以继续愉快地使用 SVN,而且我不会丢失我的工作流程和我的工具. 现在...有些人会和 Mercurial 一起来.对他们来说很好:他们有他们的理由.但是我找不到任何开箱即用的 G
..
我最近一直在修改 C# 到 C++ 的互操作,特别是设置一个从 C++ DLL 调用的回调函数. 命名空间 TomCSharpDLLImport{课程计划{公共委托无效 TomDelegate(int a, int b);[DllImport("TomDllNative.dll", CallingConvention = CallingConvention.Cdecl)]public stati
..
我正在编写一个 C# 应用程序,它使用互操作服务访问本机 C++ DLL 中的函数.我已经在使用大约 10 个不同的功能了. 现在我不确定如何处理将回调作为参数传递以便 DLL 可以调用我的代码. 这里是DLL的函数原型: typedef void (WINAPI * lpfnFunc)(const char *arg1, const char *arg2) 以及允许我传递上述类型
..
我有一个 C 库,需要注册一个回调函数来自定义一些处理.回调函数类型为int a(int *, int *). 我正在编写类似于以下的 C++ 代码,并尝试注册一个 C++ 类函数作为回调函数: class A {上市:一个();~A();int e(int *k, int *j);};A::A(){register_with_library(e)}整数A::e(int *k, int *
..
我是 clojure 和 java 的新手. 为了访问 Clojure 中的 Java 字段,您可以执行以下操作: 类名/staticField 与 相同 (.Classname staticField) (如果我错了,请纠正我) 当字段名称保存在变量中时,如何访问静态字段?即: (let [key-stroke 'VK_L键事件键事件/键击]) 我希望 key-stro
..
我正在为用 C++ 编写的程序编写插件. 插件被放置在一个特定的目录中并被主应用程序调用.我想用 Clojure 编写大部分插件(gui、计算等),但是实际的“插件"需要用 C++ 编写.各种数据需要从C++传递到Clojure. 我该怎么做? JNI/JNA、套接字、系统调用?(我知道的不多) 解决方案 我知道这个问题很老,但也许有人觉得这很有用. #include
..
我知道 clojure/java 互操作的基础知识:从 clojure 调用 java,反之亦然.但是,我无法将类型化集合从 clojure 返回到 java.我试图从调用 clojure 的 java 代码中看到这种性质的 List. Java 对象:公共类 TypedObject {私人其他类型1 _prop1;公共其他类型1 getProp1() {返回_prop1;}public voi
..
想象一下,任务是在 clojurescript 中创建一些实用程序库,以便它可以从 JS 中使用. 例如,假设我想生成一个等价物: var Foo = function(a, b, c){this.a = a;this.b = b;this.c = c;}Foo.prototype.bar = function(x){返回 this.a + this.b + this.c + x;}va
..
基本上我需要做的是这个 FileChannel.MapMode.READ_ONLY 我尝试做显而易见的事情 (.. FileChannel MapMode READ_ONLY) 但最终会抛出异常 java.lang.NoSuchFieldException: MapMode 即使是在 互操作文档 中指定的用于访问静态字段的 / 符号也会产生同样的异常 (. (FileChannel/
..
我有一个 java.util.HashMap 对象 m(调用 Java 代码的返回值),我想获得一个带有额外的键值对. 如果 m 是 Clojure 映射,我可以使用: (assoc m "key" "value") 但是在 HashMap 上尝试会得到: java.lang.ClassCastException: java.util.HashMap 无法转换为 clojure.l
..
我想知道是否有人尝试以某种方式调用 Jython 函数从 Clojure 内部,以及如果是这样,您将如何进行此操作.我有没有使用 Jython,但我想 Jython 解释器可以以与任何其他 Java 代码和 Python 程序相同的方式调用可以在里面运行.但是我想知道是否有可能以某种方式从 Clojure 调用单个 python 函数.就像我说的,我还没有尝试过这个,所以它实际上可能很简单明显的.
..
我们在 Android 下有一个很大的 Java 应用程序(“大"只是意味着翻译应用程序的工作量太大).我们必须访问一个用 .Net 编写的引擎(这个引擎也太“大"了......).这个引擎只是计算. 因此,我们寻求使用 monodroid 的解决方案.我们的主要问题是 monodroid 和 Java 之间的互操作.这时候,我们得到: 从 Mono 应用程序调用 .jar 库中的 J
..
目前正在用纯 C++/Direct3D 开发 Windows Phone 8 应用程序.我们现在需要访问设备制造商名称,但它似乎只能在 C# 下使用,根据我的研究,此类应用程序无法访问该名称. 此页面列出了我想使用的一些调用:http://msdn.microsoft.com/en-us/library/windowsphone/develop/microsoft.phone.info.de
..
我试图访问在 .h 文件中声明的状态变量,但编译器说该变量不存在.我需要在我的桥接头文件中添加任何东西吗? 在我的 swift 文件中,我无法访问 dstate 或 cstate 编译器在 g722_coder_init(&dstate) 行上说“Use of unresolved identifier 'dstate'". 头文件 #ifdef __cplusplus外部“C
..
在 Excel 中使用 Visual Basic,我可以使用 DECLARE 关键字声明 WinAPI 函数 - 例如 声明函数 SetLocaleInfo Lib "kernel32" Alias "SetLocaleInfoA" ( _ByVal 语言环境只要,ByVal LCType As Long,ByVal lpLCData As String) 作为布尔值 但是,在 *.VBS 文
..
我目前正在开发一个库,该库将公开给 COM 以在正在升级的旧项目中使用.我正在创建要公开的接口,并且它们具有 long、int 等类型的属性.使用 DescriptionAttribute,我可以获得在 .tlb 中为接口、类和方法生成的帮助字符串,但由于某种原因,它似乎不想为属性工作.无论如何,是否可以获得在 TLB 输出中为属性生成的帮助字符串? 解决方案 您必须将属性分别放在 get
..