Questions tagged «interop»

互操作性是一种计算机系统或编程语言与另一种计算机系统或编程语言一起工作的要求。


30
如何正确清理Excel互操作对象?
我在C#(ApplicationClass)中使用Excel互操作,并将以下代码放在我的finally子句中: while (System.Runtime.InteropServices.Marshal.ReleaseComObject(excelSheet) != 0) { } excelSheet = null; GC.Collect(); GC.WaitForPendingFinalizers(); 尽管这种工作有效,但是Excel.exe即使关闭Excel ,该过程仍在后台进行。仅在我的应用程序手动关闭后才释放它。 我在做什么错,还是有其他方法可以确保正确处理互操作对象?
747 c#  excel  interop  com-interop 


10
Git与Mercurial存储库的互操作性
我在Mac上使用GIT。说够了。我有工具,我有经验。而且我想继续使用它。这里没有战争... 问题总是与互操作性有关。大多数人都使用SVN,这对我来说很棒。Git SVN开箱即用,是一种简洁的解决方案。人们可以继续快乐地使用SVN,并且我不会失去工作流程和工具。 现在...有些人和水星一起来。对他们很好:他们有他们的理由。但是我找不到现成的GIT HG。我不想切换到HG,但是我仍然需要与他们的存储库进行互操作。 你们中有人知道一个简单的解决方案吗?

10
将对象转换为int的更好方法
这可能是微不足道的,但我想不出更好的方法来做到这一点。我有一个COM对象,该对象返回一个变体,该变体成为C#中的一个对象。我可以将其转换为int的唯一方法是 int test = int.Parse(string.Format("{0}", myobject)) 有没有更清洁的方法可以做到这一点?谢谢
179 c#  interop 

2
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; } 和以下代码: class main { public static void Main() { Console.WriteLine("sizeof array of bytes: "+Marshal.SizeOf(typeof(struct1))); Console.WriteLine("sizeof array of …
137 c#  interop 


9
如何处理名称长度超过259个字符的文件?
我正在开发一个应用程序,该应用程序遍历某些目录中的每个文件,并对这些文件执行一些操作。除其他外,我必须检索文件大小和修改此文件的日期。 某些文件全名(目录+文件名)太长,我无法使用.NET Framework FileInfo,它被限制为MAX_PATH(260个字符)。许多Web来源建议通过P / Invoke使用本机Win32函数来访问名称过长的文件。 当前,Win32函数似乎会出现完全相同的问题。例如对于GetFileAttributesEx(270字节)的路径(kernel32.dll)失败,并出现Win32错误3 ERROR_PATH_NOT_FOUND。 可以从Notepad2中成功打开相同的文件,并使用Windows资源管理器成功显示该文件(但由于259个字符的限制¹,例如Visual Studio 2010无法打开它)。 文件路径为270个字符长时,我该怎么办才能访问文件? 笔记: 删除或忽略文件路径长度超过259个字符的文件不是解决方案。 我仅在寻找与Unicode兼容的解决方案。 该应用程序将在安装了.NET Framework 4的Windows 2008 / Vista或更高版本下运行。 ¹令人惊讶的是,Microsoft Word 2007失败,抱怨没有软盘驱动器的计算机上的“软盘太小”,或者当剩余4 GB RAM时抱怨“ RAM内存不足”,或者最后是“需要更新防病毒软件”。他们是否会停止一天至少在诸如Microsoft Office之类的关键产品中显示如此愚蠢的毫无意义的错误?

4
从C#调用F#代码
我正在玩F#和C#,并想从C#调用F#代码。 通过在相同的解决方案中有两个项目,并将C#代码的引用添加到F#项目中,我设法使其在Visual Studio中能够以其他方式工作。完成此操作后,我可以调用C#代码,甚至在调试时逐步执行它。 我想做的是来自C#的F#代码,而不是来自F#的C#代码。我在C#项目中添加了对F#项目的引用,但是它不能像以前那样工作。我想知道如果不手动进行操作是否可行。
80 c#  interop  f# 

5
Excel互操作:_Worksheet还是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 …
76 c#  excel  com  interop 

10
如何在Objective-C中使Swift String枚举可用?
我有一个带有String值的枚举,它将用于告诉将消息记录到服务器的服务器类型的API方法。我正在使用Swift 1.2,因此可以将枚举映射到Objective-C @objc enum LogSeverity : String { case Debug = "DEBUG" case Info = "INFO" case Warn = "WARN" case Error = "ERROR" } 我得到了错误 @objc枚举原始类型字符串不是整数类型 我没有设法找到任何地方说只有整数可以从Swift转换为Objective-C。是这样吗 如果是这样,是否有人对在Objective-C中提供类似的最佳实践建议?

7
Git作为商业客户?为什么没有git-hg?
这个问题困扰了我一段时间。我已经完成作业并检查了stackoverflow,并至少找到了有关我的问题的以下两个主题: Git for Mercurial(如git-svn)和 Git与Mercurial存储库的互操作性 我已经进行了一些认真的谷歌搜索来解决这个问题,但是到目前为止还没有运气。我还阅读了《Git Internals》一书,以及《幕后的Mercurial Definitive》一书试图找出答案。我仍然有些困惑,为什么我找不到合适的git-hg工具。 从我的角度来看,git-svn是主要功能之一,为什么在工作中我还是选择使用git而不是Mercurial。它使我可以使用自己喜欢的工作流程,如果他们不在乎,则无需其他任何人打扰。正如链条之一所示,我只是看不到使用中间的hg repo来回转换的意义。 因此,无论如何,从我读过的书中,hg和git在概念设计上似乎非常相似。内在存在差异,但是这些差异都不能阻止为hg创建git客户端。在我看来,远程跟踪分支和章鱼的合并使git比hg更加强大。 因此,真正的问题是,是否有任何真正的原因导致git-hg不存在(或至少很难找到)?git用户(和开发人员)对他们的hg同行是否有敌意,导致缺少git-hg工具?你们中的任何人是否有计划开发类似的东西并公开发布?我可以自愿(尽管具有很弱的C技能)参加以完成此任务。我只是不具备自己动手的全部知识。 这可以成为永久结束所有DVCS战争的工具吗?
74 git  mercurial  interop 

4
如何在未安装MS Office的计算机上使用Microsoft.Office.Interop.Excel?
我正在编写一个适用于excel文件的应用程序。我需要删除一张纸的功能。我必须使用程序集Microsoft.Office.Interop.Excel.dll。 它在开发人员机器上运行良好,但是当我尝试在服务器上部署它时,出现错误: 无法加载文件或程序集“办公室,版本= 14.0.0.0,文化=中性,PublicKeyToken = 71e9bce111e9429c”或其依赖项之一 我了解在计算机上未安装MS Office时会发生此问题。客户不想以任何价格在服务器上安装和购买MS Office。 我按照此处的建议在开发人员计算机上安装了“可重新分配的主互操作程序集”:http : //forums.asp.net/t/1530230.aspx/1 并再次编译我的项目。 代码示例: public bool DeleteSheet(string tableName) { Excel.Application app = null; Excel.Workbooks wbks = null; Excel._Workbook _wbk = null; Excel.Sheets shs = null; bool found = false; try { app = new Excel.Application(); app.Visible = false; app.DisplayAlerts = …
74 c#  excel  dll  interop 

16
HRESULT异常:0x800A03EC错误
使用以下代码运行Excel加载项时,出现“ HRESULT:0x800A03EC”错误: Excel.Range rng = ActiveSheet.Cells[x, y] as Excel.Range; string before = rng.Value2; string cleanV = System.Text.RegularExpressions.Regex.Replace(before, @"\s+", ""); rng.set_Value(cleanV); 当发生错误时,X和Y设置为1,因此不会超出Excel范围。我进行了广泛的搜索,并尝试了多种设置单元格值的方法(例如,Cells [x,y],range.set_Value()),但是却迷茫为什么会发生此错误以及如何避免它。 任何帮助是极大的赞赏。 以下是异常详细信息: System.Runtime.InteropServices.COMException was unhandled by user code HResult=-2146827284 Message=Exception from HRESULT: 0x800A03EC Source="" ErrorCode=-2146827284 StackTrace: at System.RuntimeType.ForwardCallToInvokeMember(String memberName, BindingFlags flags, Object target, Int32[] aWrapperTypes, MessageData& msgData) at …


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.