标签: interop

从Ruby调用shell命令

如何从Ruby程序内部调用shell命令?然后我如何从这些命令输出回Ruby?

ruby shell interop

1024
推荐指数
18
解决办法
51万
查看次数

如何正确清理Excel互操作对象?

我在C#(ApplicationClass)中使用Excel互操作,并在我的finally子句中放置了以下代码:

while (System.Runtime.InteropServices.Marshal.ReleaseComObject(excelSheet) != 0) { }
excelSheet = null;
GC.Collect();
GC.WaitForPendingFinalizers();
Run Code Online (Sandbox Code Playgroud)

虽然这种工作,Excel.exe即使我关闭Excel后,该过程仍然在后台.只有在我的应用程序手动关闭后才会发布.

我做错了什么,或者是否有其他方法可以确保互操作对象得到妥善处理?

c# excel interop com-interop

733
推荐指数
20
解决办法
30万
查看次数

如何在MySQL上进行SQL区分大小写的字符串比较?

我有一个函数返回五个字符混合大小写.如果我对这个字符串进行查询,它将返回值而不管大小写.

如何使MySQL字符串查询区分大小写?

mysql sql interop case-sensitive string-comparison

261
推荐指数
8
解决办法
23万
查看次数

Git与Mercurial存储库的互操作性

我在Mac上使用GIT.说够了.我有工具,我有经验.我想继续使用它.这里没有战争......

问题始终在于互操作性.大多数人都使用SVN,这对我来说很棒.Git SVN开箱即用,是一个没有多余装饰的解决方案.人们可以继续愉快地使用SVN,我不会丢失我的工作流程,也不会丢失我的工具.

现在......有些人和Mercurial一起来了.对他们来说很好:他们有他们的理由.但我找不到任何GIT HG开箱即用.我不想切换到HG,但我仍然需要与他们的存储库进行互操作.

你们中的任何人都知道一个简单的解决方案吗?

git version-control mercurial interop dvcs

194
推荐指数
7
解决办法
4万
查看次数

将对象转换为int的更好方法

这可能是微不足道的,但我想不出更好的方法.我有一个COM对象,它返回一个变体,它变成了C#中的一个对象.我能把它变成int的唯一方法是

int test = int.Parse(string.Format("{0}", myobject))
Run Code Online (Sandbox Code Playgroud)

有更清洁的方法吗?谢谢

c# interop

164
推荐指数
4
解决办法
28万
查看次数

C#中布尔值的大小是多少?它真的需要4个字节吗?

我有两个带字节和布尔数组的结构:

using System.Runtime.InteropServices;

[StructLayout(LayoutKind.Sequential, Pack = 4)]
struct struct1
{
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
    public byte[] values;
}

[StructLayout(LayoutKind.Sequential, Pack = 4)]
struct struct2
{
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
    public bool[] values;
}
Run Code Online (Sandbox Code Playgroud)

以下代码:

class main
{
    public static void Main()
    {
        Console.WriteLine("sizeof array of bytes: "+Marshal.SizeOf(typeof(struct1)));
        Console.WriteLine("sizeof array of bools: " + Marshal.SizeOf(typeof(struct2)));
        Console.ReadKey();
    }
}
Run Code Online (Sandbox Code Playgroud)

这给了我以下输出:

sizeof array of bytes: 3
sizeof array of bools: 12
Run Code Online (Sandbox Code Playgroud)

似乎boolean需要4个字节的存储空间.理想情况下boolean ,只需要一点(falsetrue,01 …

c# interop

136
推荐指数
2
解决办法
2万
查看次数

将Kotlin Array转换为Java varargs

如何将我的Kotlin转换Array为varargs Java String[]

val angularRoutings = 
    arrayOf<String>("/language", "/home")

// this doesn't work        
web.ignoring().antMatchers(angularRoutings)
Run Code Online (Sandbox Code Playgroud)

如何将ArrayList传递给varargs方法参数?

java interop kotlin kotlin-interop

93
推荐指数
1
解决办法
3万
查看次数

从C#调用F#代码

我正在玩F#和C#,并希望从C#调用F#代码.

我设法让它在Visual Studio中以相反的方式工作,方法是在同一个解决方案中有两个项目,并在F#项目中添加C#代码的引用.这样做之后,我可以调用C#代码,甚至在调试时逐步执行它.

我想要做的是F#代码来自C#而不是来自F#的C#代码.我在C#项目中添加了对F#项目的引用,但它的工作方式与以前不同.我想知道如果不手动完成这是否可行.

c# f# interop

77
推荐指数
3
解决办法
4万
查看次数

Excel互操作:_Worksheet或工作表?

我现在正在写关于动态类型的文章,我给出了一个Excel互操作的例子.我之前几乎没有做任何Office互操作,它显示了.C#4 的MSDN Office Interop教程使用了_Worksheet界面,但也有一个Worksheet界面.我不知道有什么区别.

在我荒谬简单的演示应用程序(如下所示)中,要么工作正常 - 但如果最佳实践指示一个或另一个,我宁愿适当地使用它.

using System;
using System.Linq;
using Excel = Microsoft.Office.Interop.Excel;

class DynamicExcel
{
    static void Main()
    {
        var app = new Excel.Application { Visible = true };
        app.Workbooks.Add();

        // Can use Excel._Worksheet instead here. Which is better?
        Excel.Worksheet workSheet = app.ActiveSheet;

        Excel.Range start = workSheet.Cells[1, 1];
        Excel.Range end = workSheet.Cells[1, 20];
        workSheet.get_Range(start, end).Value2 = Enumerable.Range(1, 20)
                                                           .ToArray();
    }
}
Run Code Online (Sandbox Code Playgroud)

我试图避免深入研究COM或Office互操作性,只是强调C#4的新功能 - 但我不想做任何真正的,真的愚蠢的事情.

(在上面的代码中可能还有一些非常,非常愚蠢的东西,在这种情况下请告诉我.使用单独的开始/结束单元而不仅仅是"A1:T1"是故意的 - 它更容易看出它真的是一个范围20个细胞.其他任何东西都可能是偶然的.)

那么,我应该使用_Worksheet或者Worksheet …

c# com excel interop

74
推荐指数
5
解决办法
2万
查看次数

Git是一个善变的客户?为什么没有git-hg?

这是一个困扰我一段时间的问题.我完成了我的作业并检查了stackoverflow,至少找到了关于我的问题的两个主题: Git for Mercurial,如git-svnGit与Mercurial存储库的互操作性

我已经做了一些严肃的谷歌搜索来解决这个问题,但到目前为止没有运气.我还阅读了Git Internals的书,以及Mercurial Definitive Behind the Scenes来试图解决这个问题.我仍然有点疑惑为什么我找不到任何合适的git-hg类型的工具.

从我的角度来看,git-svn是其中一个主要特性,为什么我选择在工作中使用git而不是mercurial.它允许我使用我喜欢的工作流程,如果他们不在乎,没有其他人需要打扰.我只是没有看到使用中间hg repo来回转换的重点,正如其中一个链中所建议的那样.

所以无论如何,从我读过的内容来看,hg和git在概念设计上看起来非常相似.引擎盖下存在差异,但这些都不会阻止为hg创建git客户端.在我看来,远程跟踪分支和章鱼合并使得git比hg更强大.

那么,真正的问题是,为什么git-hg不存在(或者至少很难找到)有任何真正的原因吗?git用户(和开发人员)对他们的hg对手是否有一些敌意导致缺乏git-hg工具?你们有没有计划开发类似的东西,并公开上市?我可以自愿参加(尽管有非常微弱的C技能)参与完成这项工作.我只是没有完全的知识来自己开始这个.

这可能是结束所有DVCS战争的工具吗?

git mercurial interop

73
推荐指数
5
解决办法
2万
查看次数