2011-12-02 139 views
1

我想将c#代码转换为j#,并设法通过dllimport和marshalas。J#对象参考

问题是,当一个函数有一个对象的引用 - REF不被识别

公共静态本地INT马托(REF类型类型,整数标志);

任何人有J#的经验,知道如何(在方法或定义类型作为参考)发送引用的方法

回答

1

我敢肯定,你不能直接这样做。

所有东西都按值传递real Java,也可能是J#。

在最近版本的Java you can workaround the restriction by using AtomicReference的,但我很怀疑J#是跟上时代的足够支持这一点。

您可以尝试更改方法签名以接受单元素Type[]数组,然后改变该数组元素。这将允许您获得与ref类似的结果。缺点是你需要改变调用站点和方法本身来包装和打开数组中的变量。 (虽然你可以创建自己的自定义类型封装包装和不包装,如果它简化了的东西。)

+0

我敢肯定,J#没有发生变异。但是我有一个头脑风暴:代码的目的不需要与我的程序进行持续的交互。它在节目开始时运行一次,最后一次运行。我可以简单地通过我的j#应用程序运行该程序,并将它传递给我想要的参数。 (顺便说一句 - 这是一个功能,可以改变屏幕的分辨率以与我的应用程序兼容) – user779444