草庐IT

c# - 为 64 位编译我的应用程序如何使其更快或更好?

我使用C#、.NET、VS.NET2008。除了能够寻址更多内存之外,将我的应用程序编译为64位还有哪些优势?它会更快还是更小?为什么?它是否使它更兼容x64系统(与32位应用程序相比)? 最佳答案 对于native应用程序,您可以获得诸如增加地址空间等好处。但是,.NET应用程序在CLR上运行,CLR抽象出任何底层架构差异。假设您只是处理托管代码,那么针对特定平台没有任何好处;你最好只使用“anycpu”标志集(默认情况下打开)进行编译。这将生成与平台无关的程序集,这些程序集将在运行CLR的任何架构上同样出色地运行。专门针对(比如

c# - WebView 调用脚本 HRESULT 0x80020101

我正在尝试调用WebView中的函数。我需要调用的一些目标函数是:play:function(){if(this.value我先打电话webView.InvokeScript("play",newstring[0]);但这没有用,HRESULT:0x80020101。我找到了这个http://support.microsoft.com/kb/247784关于这个话题,但它对我一点帮助都没有。然后我尝试做我在多个网站上找到的例子:webView.InvokeScript("eval",newstring[]{"document.documentElement.outerHTML;");和

c# - UInt64 和 "The operation overflows at compile time in checked mode"- CS0220

这感觉像是一个愚蠢的问题,但我似乎看不到答案。我有一个UInt64,它的最大值应该是UInt64.MaxValue18446744073709551615但是,当我尝试分配一个中等大小的数字时,出现“在检查模式下编译时操作溢出”的溢出错误。如果我将它包装在一个“未经检查”的block中,那么它会编译并运行,就像这个变量为零一样:UInt64value1=1073741824*8;//CompileerrorCS0220UInt64value2=8589934592;//Actualvalue-noerror为什么会这样? 最佳答案

c# - 我认为我的团队在 64 位编译器中发现了一个错误,其他人可以确认或告诉我为什么这是正确的吗?

我有一个关于此可能错误的简单无尘室示例。staticvoidMain(string[]args){boolMyFalse=false;if(MyFalse){thrownewException();}try{inti=0;}catch(Exceptione){Console.Write(e);}Console.Read();}如果在x64或AnyCPU中编译(当prefer32bit在VS2012中设置为false时)如果你在ifblock中放置断点,它总是会被命中。我们在VS2012、VS2010和VS2008中尝试过,它们在64位编译时都触发了ifblock,但在32位中它不会触发

c# - 如何解决 Exception :Call was rejected by callee. (Exception from HRESULT : 0x80010001 (RPC_E_CALL_REJECTED)) in C#?

我在控制台应用程序中编写了一个C#代码来打开两个excel并将数据从一个excel复制并粘贴到另一个excel。在目标excel的可见性为真之前,它工作正常。但是我需要在执行时隐藏excel。所以我将可见性更改为false。喜欢,_destExcelApp=newExcel.ApplicationClass();_destExcelApp.Visible=false;现在它显示了一个异常Callwasrejectedbycallee.(ExceptionfromHRESULT:0x80010001(RPC_E_CALL_REJECTED))如何解决这个问题?

c# - 加载 x86 或 x64 程序集

我有两个版本的System.Data.SQLite.DLL-适用于x86和x64平台。x86版本保存在应用程序文件夹中,x64版本保存在appFolder\x64文件夹中。应用程序编译为AnyCPU。如何根据Windows平台加载所需的SQLite版本? 最佳答案 如果您使用来自http://system.data.sqlite.org的SQLite,System.Data.SQLite.DLL是完全托管的。有一个底层nativeDLL,SQLite.Interop.DLL,需要根据进程(32位或64位)进行更改。我将native库

c# - 解码Base64图像

我在HTML中嵌入了一个Base64图像,如何使用C#或VB.net对其进行解码。 最佳答案 google.com>base64图像解码c#>http://www.eggheadcafe.com/community/aspnet/2/39033/convert-base64-string-to-image.aspxByte[]bitmapData=Convert.FromBase64String(FixBase64ForImage(ImageText));System.IO.MemoryStreamstreamBitmap=newS

c# - 找到的程序集的 list 定义与程序集引用不匹配。 (来自 HRESULT : 0x80131040) 的异常

签署第三方程序集并将它们添加到GAC后,我收到以下错误:程序集Binder日志条目也显示thiserror它说不匹配的程序集不确定在我删除所有obj和bin折叠并批量构建应用程序+重新导入dll时会发生什么错误。Assemblymanagerloadedfrom:C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dllRunningunderexecutableC:\ProgramFiles(x86)\CommonFiles\MicrosoftShared\DevServer\11.0\WebDev.WebServer40.exe---

c# - 使用托管代码包装器从 64 位托管代码调用 32 位非托管代码的最佳方式

随着64位机器和应用程序的普及,我遇到必须从托管64位进程调用native32位代码的情况的频率正在增加。我不想将我的应用程序标记为32位,并且我无法获得正在调用的代码的64位版本。我目前使用的解决方案是创建从进程加载的C++COM垫片,以便从64位进程进行32位调用。这种COMshim解决方案运行良好,跨进程调用由COM在幕后处理,从而最大限度地减少了这种方法的开销。不过,我想保留我们使用C#进行的所有新开发,并想知道是否有任何框架可以最大限度地减少这样做的开销。我看过IPCChannel,但我觉得这种方法不如COMshim解决方案那么简洁。谢谢,埃德 最

c# - WMI:RPC 服务器不可用。 (HRESULT 异常:0x800706BA)尝试连接到远程机器时抛出

我正在使用以下代码通过WMI连接到远程计算机:ConnectionOptionsconnOptions=newConnectionOptions();connOptions.Impersonation=ImpersonationLevel.Impersonate;connOptions.EnablePrivileges=true;connOptions.Username="admin";connOptions.Password="password";ManagementScopescope=newManagementScope(String.Format(@"\\{0}\ROOT\CI