草庐IT

c# - 对构建 32 位或 64 位感到困惑

我有一个包含多个项目(C#WPF应用程序和类库)的VS2013解决方案。每个项目的“平台目标”都设置为“任何CPU”。我的印象是生成的EXE将在64位PC上作为64位应用程序运行,在32位PC上作为32位应用程序运行。这个对吗?我的开发PC是64位的,但是当我运行应用程序(独立运行或通过VS调试)时,它在任务管理器中显示为“foo.exe*32”。这是怎么回事?我们有一个32位机器的初级开发人员。他是否仍然能够打开解决方案并在VS中运行它?此外,一些项目引用了第3方DLL。供应商同时提供32位和64位版本-项目应该引用哪个版本?如果我引用32位DLL,这是否会阻止应用程序作为64位应用

c# - Amazon S3 中的并发

我目前正在构建一个系统,其中S3将被Internet上的许多计算机用作持久哈希集(S3URL从数据中推断出来)。如果两个节点存储相同的数据,那么它将使用相同的key存储,因此不会存储两次。当一个对象被删除时,我需要知道其他一些节点是否也在使用该数据。在那种情况下,我不会删除它。现在我已经通过添加存储节点列表作为写入S3的数据的一部分来实现它。因此,当节点存储数据时,会发生以下情况:从S3读取对象。反序列化对象。将新节点的id添加到存储节点列表中。序列化新对象(要存储的数据和节点列表)。将序列化数据写入S3。这创建了一种幂等引用计数形式。由于Internet上的请求可能非常不可靠,我不想

c# - Xamarin.iOS ARKit 演示项目错误 : “32-bit architectures are not supported when deployment target is 11 or later"

从https://developer.xamarin.com/samples/monotouch/ios11/ARKitSample/部署ARKit示例项目时,我收到构建错误Invalidarchitecture:ARMv7。当部署目标为11或更高版本时,不支持32位架构。所有与部署设备和我的开发机器一起检查:我在部署设备上运行iOS11(iPhone6SPlus-ARKit不会在模拟器中运行),并且安装了Xcode9(并且在启动VisualStudioforMac之前启动过一次)。VisualStudioforMac也已更新到最新的稳定版本(ARKit目前在Alpha和Beta版本中

ESP8266WIFI模块(ESP01)上云端(OneNet平台,HTTP)

第一步使用onenet平台1.注册账号并登录Onenet平台2.打开控制台3.在控制台点击全部产品,选择基础服务的多协议接入4.选择·HTTP并点击添加产品。5.填写产品信息,名称随便起,行业任选一个,类别也任选,联网方式选择wifi6.添加设备并填写设备名称,随便起名个字,随便输入编号,但是同一产品下的设备编号不能重复。7.记录密钥和设备编号第二步硬件连线部分ESP013.3VGNDRXTXENUSB-TTL开发板3.3V接开发板GNDUSB-TTL的TX接USB-TTL的RX接3.3V注意!!!ESP开启机电流比较大,USB-TTL无法支持大电流最好使用开发板的3.3V.但是要注意共地。第

c# - 在 C# 中用 32 位字交换字节序的更快方法

在thisquestion,以下代码:publicstaticvoidSwap(byte[]data){for(inti=0;i用不安全的代码重写以提高其性能:publicstaticunsafevoidSwapX2(Byte[]Source){fixed(Byte*pSource=&Source[0]){Byte*bp=pSource;Byte*bp_stop=bp+Source.Length;while(bp假设有人想用32位字做同样的事情:publicstaticvoidSwapX4(byte[]data){bytetemp;for(inti=0;i这将如何以类似的方式重写?

c# - 整数 32?与我可比

我有一个DataGridView,它的数据源是一个BindingList。MyObj有一些可为null的属性(如int?和DateTime?)我想对我的绑定(bind)列表进行排序,以便DataGridView可以在用户单击列标题时对列进行排序。经过一番挖掘,我发现并遵循了这个问题的答案(DataGridViewColumnsortingwithBusinessObjects)。我无法让该解决方案适用于Nullable类型,因为它们没有实现IComparable。即使对于像String这样实现IComparable的类,当String具有空值时ApplySortCore(...)也会失

c# - 使用 WMI 识别哪个设备导致了 Win32_DeviceChangeEvent

我一直在编写一些代码来检测USB设备的添加和移除,并且我使用以下WMI代码来注册设备更改通知:watcher=newManagementEventWatcher(query);watcher.EventArrived+=newEventArrivedEventHandler(DeviceChangeEventReceived);watcher.Start();这是处理程序代码:voidDeviceChangeEventReceived(objectsender,EventArrivedEventArgse){foreach(PropertyDatapdine.NewEvent.Prop

c# - 来自 user32.dll 的 FindWindowEx 使用 dllimport 返回零句柄和 127 错误代码

我需要以编程方式处理另一个Windows应用程序,搜索谷歌我找到了一个示例,它使用DLLImport属性处理Windows计算器并将user32.dll函数导入C#中的托管函数。应用程序正在运行,我正在获取主窗口的句柄,即计算器本身,但之后的代码无法正常工作。FindWindowEx方法不返回计算器子项的句柄,例如按钮和文本框。我尝试在DLLImport上使用SetLastError=True并发现我收到错误代码127,即“未找到过程”。这是我从中获得示例应用程序的链接:http://www.codeproject.com/script/Articles/ArticleVersion.

c# - 从 .NET Windows 服务调用 Shell32.dll

我有一个.NET4.0库,它使用Shell32和Folder.GetDetailsOf()从WTV文件中获取元数据。我已经成功地将它用于控制台和Windows窗体应用程序,没有任何问题。但由于某种原因,当从.NET4.0Windows服务调用组件时,调用启动Shell类会导致COM错误。库中失败的代码:Shell32.Shellshell=newShell();错误:无法将“System.__ComObject”类型的COM对象转换为接口(interface)类型“Shell32.Shell”。此操作失败,因为IID为“{286E6F1B-7113-4355-9562-96B7E9D6

c# - LINQ to Entities 无法识别方法 'Int32 IndexOf(System.String, System.StringComparison)' 方法

我已经使用Entityframework执行了一个linq查询,如下所示GroupMastergetGroup=null;getGroup=DataContext.Groups.FirstOrDefault(item=>keyword.IndexOf(item.Keywords,StringComparison.OrdinalIgnoreCase)>=0&&item.IsEnabled)执行此方法时出现如下异常LINQtoEntitiesdoesnotrecognizethemethod'Int32IndexOf(System.String,System.StringCompariso