将按钮控件嵌入到现有的Direct3D应用程序中

我想在Direct3D v9游戏(由第三方制作)上面叠加自己的内容。 叠加交互式按钮 具体来说,我想覆盖一个可点击的按钮控件,比如Steam,例如,虽然我正在尝试一个更简单的界面。 理想情况下,我可以覆盖WPF按钮或Windows窗体按钮或整个UserControl,但如果不可能,那么从基元创建一个function按钮就足够了。 文本叠加使用SharpDX 我有一个基于Justin Stenning工作重叠文本的工作样本 即在SharpDX.Direct3D9.Font DrawText方法的帮助下 如何使用SharpDX覆盖Button或UserControl 我查看了https://github.com/sharpdx/SharpDX-Samples中的相关示例,但无法找到使用SharpDX包含或绘制本机控件的方法 可能吗? 如果没有,是否有从头开始绘制可点击按钮的样本? 请记住我是DirectX世界的新手:)

为’Any CPU’构建p4api.net.dll

本周早些时候,当我尝试使用p4api.net.dll时,我遇到了第一个BadImageFormatException。 原来我的假设是我可以使用它的64位版本而且p4bridge.dll不正确! 在我的调查中,我注意到我有一个警告: warning MSB3270: There was a mismatch between the processor architecture of the project being built “MSIL” and the processor architecture of the reference “p4api.net, Version=2014.3.100.9144, Culture=neutral, PublicKeyToken=f6b9b9d036c873e1, processorArchitecture=AMD64”, “AMD64” 我了解到这意味着我使用的.dll指定使用64位,而不是使用Any-CPU构建。 虽然我们可以将项目更改为特定的x64,但我还是被要求调查是否仍然可以将其作为平台不可知的方式保留。 我仍然是p4api.net的新手并且不得不处理这种依赖,但我的理解是,如果我可以将p4api.net.dll构建为“任何CPU”,警告就会消失,我只需要做一些魔法,以确保使用正确的p4bridge.dll取决于我在项目中定义的CurrentPlatform。 我下载并编译了p4api.net源代码并尝试指定任何CPU,但它不起作用。 现在它说该架构设置为x86,我仍然得到类似的MSB3270错误 – 现在是x86。 但是,我没有使用p4api.net解决方案得到这样的警告,因此它似乎没有我所知道的任何平台依赖性。 但是,如果我在CorFlags.exe上使用CorFlags.exe ,它肯定会提供特定于平台的PE / 32BIT标志。 所以我的问题: 有没有人知道是否有可能为任何CPU构建p4api.net? 如果做不到这一点,我需要做些什么来检查哪些(如果有的话)平台依赖存在会妨碍我为任何CPU构建p4api.net.dll? 如果上面的答案都没有,我可能会有新的问题,但是当我到达那里时会越过那座桥! 🙂 提前感谢任何帮助/想法。

用于逗号分隔的电子邮件地址列表的ASP.NET自定义validation程序的问题

我在这里发布了一篇博文 ,使用自定义validation器来validation电子邮件列表。 但是,文章中的Regex表达式: Regex emailRegEx = new Regex(@”\w+([-+.’]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*”, RegexOptions.IgnoreCase); 允许此电子邮件地址: “APL@domain.com 123@domain.com” 这显然是无效的。 如何更改它以将其标记为无效? 注意:当您使用带有SAME正则表达式表达式的核心RegExvalidation程序时,它会捕获该电子邮件,因此可能是匹配选项存在问题吗? 谢谢

使用属性的名称构建OrderBy表达式

我试图通过MVC3中的WebGrid控件来支持排序,MVC3通过sort参数将模型上的属性名称传递给我的操作。 public class Agent { public int Id { get; set; } public string Name { get; set; } } [HttpGet] public ActionResult Index(string sort = “Id”, string sortdir = “ASC”) { // Define the parameter that we are going to use in the OrderBy clause. var param = Expression.Parameter(typeof(Agent), “agent”); // Now we’ll make […]

CreateDocumentCollectionIfNotExistsAsync并不总是有效

如果它不存在,我正在尝试创建一个集合。 首先,我通过以下方式创建DocumentClient: public DocumentClient CreateClient(ConnectionPolicy connectionPolicy = null) { return new DocumentClient(new Uri(this.AccountEndpoint), this.AccountKey, connectionPolicy); } 现在我有了我的文档客户端(让我们称之为documentDbClient ),我尝试使用CreateDocumentCollectionIfNotExistsAsync : var documentDbClient = dbConnection.CreateClient(); await documentDbClient.CreateDocumentCollectionIfNotExistsAsync(UriFactory.CreateDatabaseUri(“mydatabase”), new DocumentCollection { Id = “testcollection” }); 现在,我希望这会在名为mydatabase数据库下创建一个名为testcollection的集合。 然而,没有任何反应。 没有创建集合,也没有抛出exception。 我想也许它只是很慢,所以我等了30分钟然后回到门户网站,看看我的collections是否已经制作完…… 它没有。 怎么了? UPDATE 好的,所以我发现如果我改变我试图创建的集合的名称,它就可以了。 我之前已经多次创建和删除了该集合,现在看来Azure无法在90%的时间内创建它。

SqlCommand返回值参数

也许看到这段代码的其他人将能够告诉我为什么returnID始终为0.我试图从插入的记录中检索新的ID。 public int AddToInventory(int PartID, int QtyOnHand, int SpokenFor, int LowOrderQty, int HighOrderQty, decimal LastBuyPrice, decimal AvgBuyPrice) { ConfigDAL config = new ConfigDAL(); string connstr = config.GetConnString(); SqlConnection conn = new SqlConnection(connstr); string query; query = “INSERT INTO Inventory (PartID, QtyOnHand, SpokenFor, LowOrderQty, HighOrderQty, LastBuyPrice, ” + “AvgBuyPrice, CreatedOn, CreatedBy, ModifiedOn, ModifiedBy) ” + “Values […]

在具有多个记录的Linq查询之后,foreach循环仅返回第一条记录

我有一个针对第三方提供的数据库运行的Linq2SQL查询。 查询的主要部分如下所示: var valuationQuery = from v in context.Valuations where v.ModelId == QualifiedModelId.ModelId && v.QualifyModelId == QualifiedModelId.Qualifier && v.LanguageCode == QualifiedModelId.LanguageCode && v.Edition == Data.Meta.Edition.CurrentEdition.Date && v.RegDate == yearReg.RegistrationDate && v.ValTypeDescription == “Normal” && v.MileageBandID == MileageBand 当我用foreach循环环绕它时,它会工作或失败,具体取决于最后的选择。 当select指定所有这样的字段时…… select new { v.Value1, v.Value2, v.Value3, … snip … v.Value14, v.Value15, v.ValueTypeID }; ……它正常工作。 当我执行以下操作时,循环会迭代正确的次数,但每次都会返回第一条记录: select […]

禁用所有操作的浏览器缓存,但保留捆绑包

在我正在处理的MVC应用程序中,出于安全原因,我们不得不在所有操作上阻止浏览器缓存(防止用户在注销后返回历史记录)。 我们使用此解决方案实现了此目 但是,我们确实希望允许浏览器缓存css和js包。 不幸的是,上面提到的解决方案似乎阻止了所有资源的缓存。 在本地机器上,它甚至包括静态文件,如图像,但在远程服务器上IIS处理这些文件(而不是应用程序本身),这样就不用担心了。 无论如何,是否有一些方法可以调整此解决方案以允许浏览器缓存捆绑包? 我知道我可以使用像这样的filter并将其添加到所有操作(甚至更好,所有控制器)或添加一个新的基本控制器,默认情况下具有此filter,并将我的所有控制器设置为inheritance它,但有没有更好的选择(不涉及更改项目中的无数文件)? PS写完这个问题让我想到了一些我必须尝试的解决方案。 这件事发生在我之前。 我的意思是,在这里写一个问题时找到正确的答案,但我最后没有发布这些问题。 在写这个问题时我觉得的解决方案非常简单。 只需在Application_BeginRequest写一个简单的if条件,以确定资源是否应该是可缓存的,基于请求url …我还没有测试它,但听起来它可能只是做这项工作。

使用C#导出Azure数据库

我的C#程序适用于Azure数据库。 我正在使用Microsoft.Rest和Microsoft.Azure.Management库来做一些事情(数据库复制,操作,删除等等)。 我尝试导出Azure数据库,但我无法在C#中找到如何做到这一点。 有谁知道我怎么做,或者直接告诉我一个例子?

命名空间不能直接包含成员… +类型或命名空间定义,或文件结束预期错误

我正在尝试为Windows Phone编译Sync Framework 4.0的示例代码,但是我在几个文件中遇到了错误。 其中一个文件是: #if SERVER namespace Microsoft.Synchronization.Services #elif CLIENT namespace Microsoft.Synchronization.ClientServices #endif { /// /// Represents the base interface that all offline cacheable object should derive from. /// public interface IOfflineEntity { /// /// Represents the sync and OData metadata used for the entity /// OfflineEntityMetadata ServiceMetadata { get; set; } } } […]