Articles of visual studio 2013

运行特定版本的Visual Studio(并行安装两个版本的Visual Studio)

我的电脑上安装了Visual Studio 2012 Ultimate和Professional。 默认情况下,Windows打开终极,有没有办法指定我想打开哪个版本?

如何确定32位Visual Studio 2013可再发行组件是否通过registry可靠地安装在用户计算机上?

我使用DeployMaster为使用Qt编写的C ++编写的32位Windows应用程序构build安装程序。 可执行文件取决于Visual Studio 2013的可再发行组件 – 即,在运行此应用程序之前,必须由最终用户安装32位Visual Studio 2013可再发行组件 。 我GOOGLE了,看着其他的StackOverflow的问题。 特别是, 这个链接提供了确切的registry项来检查 ,但对于VS 2008的情况。 我需要VS 2013,而不是VS 2008。 但是,理想情况下,这将是一个可靠的registry检查 – 而不是一个程序化的解决scheme – 因为我可以轻松地检查与DeployMaster安装程序的registry项。 (如果系统确定没有安装可再发行组件,使用DeployMaster安装程序启动安装程序也很容易。) 有没有人知道一个可靠的方法,最好使用registry项,这使得可以确定32位VS 2013可再发行组件是否安装在最终用户的机器上?

如何在控制台应用程序中引用Windows 8运行时(特别是BLE API)?

我在安装了WDK的 Windows 8.1上使用Visual Studio Professional 13中的C#。 我需要编写一个使用自定义服务UUID与BLE设备交互的桌面应用程序。 使用蓝牙通用属性configuration文件 –从MSDN提供的心率服务示例项目,我可以编辑正在search的服务UUID并find我的特定设备。 但是,示例项目是Windowsapp store(Metro),我需要一个控制台应用程序。 当我创build一个types为Visual C# > Store App > Windows App的新项目时,Windows 8 SDK将自动包含在项目中。 但是,当创build一个Visual C# > Windows Desktop > *项目,我找不到一种方法来包括Windows 8运行时间和我需要访问的BLE API 。 当然,微软并没有把BLE API限制到商店应用程序那么短视。 如何创build/修改他们的项目来开发利用BLE API的桌面和控制台应用程序? 迄今为止我所做的研究(和失败的尝试)已经排除了32feet.net,因为图书馆目前不提供对蓝牙低能量堆栈的支持。 但是,如果有另一个提供BLE支持的第三方库(最好是开放源代码,或者至less有一个试用版),我将会公开使用它来代替Windows 8 Runtime。

调用静态链接函数崩溃每次在Windows 8/10而不是7

问题 : 我已经build立了https://github.com/reorg/pg_repack项目,它生成一个二进制文件。 这个二进制文件与postgres 9.6可重新分发(我使用EntrepriseDb)。 所有在Windows 7上工作正常。我没有问题,在构build或运行期间。 但是,在Windows 8或10,应用程序总是崩溃的下列序列。 这个二进制文件是使用Visual Studio 2013在Windows 7上生成的(在Windows 10上,我尝试过使用在Windows 10上生成的一个版本,但它不会改变任何东西),在x64系统上为x64应用程序生成二进制文件,它使用dynamic基础。 为了确保我使用正确的二进制文件,我已经将所有可重新分发的二进制文件复制到我的应用程序的文件夹中。 在Windows 7上的组装细节(工作案例): main之后几行,应用程序调用函数set_pglocale_pgservice set_pglocale_pgservice(argv[0], "pgscripts"); 00007FF6E4B39C85 mov eax,8 00007FF6E4B39C8A imul rax,rax,0 00007FF6E4B39C8E lea rdx,[default_options+120h (07FF6E4B43B10h)] 00007FF6E4B39C95 mov rcx,qword ptr [argv] 00007FF6E4B39C9A mov rcx,qword ptr [rcx+rax] 00007FF6E4B39C9E call qword ptr [__imp_set_pglocale_pgservice (07FF6E4B40520h)] 内存在07FF6E4B40520h 0x00007FF6E4B40520 00000001403e1da0 .>@…. 0x00007FF6E4B40528 0000000000000000 …….. 0x00007FF6E4B40530 […]

x86 LargeAddressAware兼容性的unit testing

对于win32可执行文件(x86),我们可以设置LargeAddressAware标志,以便在x64 Windows上运行时可以访问4 GB(而不是2 GB)的虚拟地址空间。 这看起来非常有吸引力。 但是,有风险涉及。 例如,请参阅: 在32位Windows可执行文件中使用/ LARGEADDRESSAWARE的缺点? 因此,让我们继续并configuration正在执行一些unit testing的系统范围registry开关AllocationPreference设置为MEM_TOP_DOWN 。 应该这样做,不是吗? 它不! 问题是Visual Studio的x86“testing运行器”(执行引擎)本身不是LAA。 这个父进程只会看到“低”2 GB的VAS,我们的模块也会被testing。 来自VS2013.1的例子 mstest.exe产生QTAgent32.exe vstest.console.exe产生vstest.executionengine.x86.exe 他们都不是LAA启用! 那么使用启用LAA的x86testing运行器的推荐方法是什么? 这里有一个代码片段(VSunit testing,csharp)来检查LAA执行环境。 除非它成功了你的testing环境是不适合你有一套unit testing(也)覆盖与LAA的兼容性: using System; using System.Diagnostics; using System.Runtime.InteropServices; using Microsoft.VisualStudio.TestTools.UnitTesting; namespace TestCheckEnv32LAA { [TestClass] public class CheckEnv32LAA { #region [Native DLL import] [Flags()] public enum AllocationType : uint { COMMIT […]

在C ++中使用Media Foundation&Windows 8捕获问题

这将是我的第一个问题在StackOverflow几天后寻找一个解释。 请温柔地问我,因为我知道我的问题有点奇怪是一个普遍的问题。 我制作了一个基于微软示例“CaptureToFile”的MF捕捉video应用程序。 它确实在Windows 7 x64上工作。 我升级到Visual Studio 2013没有问题。 当我尝试在Windows 8.1 x64机器上进行所有的开发时出现问题。 该应用程序编译和执行没有错误,但它是无法通过在asynchronous模式下使用m_pReader-> ReadSample()捕获采样; 只有前两个样本到达OnReadSample方法; 并且必须有“控制”样本,因为IMFSample全部为空。 之后,应用程序被“吊”等待数据。 我已经尝试了原始MFCaptureToFile样品,同样的悲伤结果。 当然,我觉得硬件和软件是相似的(相同的驱动程序版本的捕获卡,都是台式电脑…) 你知道这种行为的可能原因吗? 在Win7中,一切都是无懈可击的! 或者至less,如果你能点亮一些关于寻找新事物的新途径 提前致谢 更新:游戏中还有另外一个“玩家”。 纵观线程,我发现一个工作线程在'RTWorkQ.dll',实时工作队列容器中,只针对Windows 8。我将继续研究。 同时,如果您有任何想法,可以分享,我很乐意听到您的声音。 更新2:我修改了示例MFCaptureToFile同步获取video样本,因为我认为这个问题可能是由于asynchronous行为; 与队列有关。 我不得不说,即使这个变化,问题仍然存在。 第二次尝试阅读样本时,应用程序被“吊死”,等待阅读不会永远不会到来。 更新3:我已经尝试使用捕获video(MFCaptureEngine)的另一种MF方式的CaptureEngine示例应用程序。 它的构build和运行完美无瑕,但是在开始“预览”时不会显示任何图像,也不会logging任何有用的,只有非可播放的文件。 更新4:我已经在Windows 8 PRO中安装了Visual Studio 2010 Ultimate。 样本MFCaptureToFile在样本中再次失败。 无法从图像采集卡读取第二个采样。 我开始认为这可能是采集卡(Datapath VisionRGB-E1S)和Windows 8 PRO之间的不兼容,尽pipe驱动程序确保在此平台上正常工作,并且testing程序显示图像。 明天我要用外置的USBnetworking摄像机来testing。

在VS 2015和VS 2013上运行相同代码的问题

在Visual Studio 2013和2015中运行一段代码时,会得到两个不同的结果。 在Visual Studio 2015上,我得到一个NullReference,在2013年,它的工作方式应该如此。 此外,Visual Studio 2015在Windows 8.1和Windows 8.1上运行。 这段代码是: private static T FindParentOfType<T>(DependencyObject o) { dynamic parent = VisualTreeHelper.GetParent(o); return parent.GetType().IsAssignableFrom(typeof(T)) ? parent : FindParentOfType<T>(parent); } 代码被调用: Grid RiskGrid = FindParentOfType<Grid>(ChampViewModelSel); 错误是一个Nullreference当它检查IsAssginableFrom因为在VS2015中,它find了一个Canvas而不是在VS2013中find的希望的Grid? 堆栈跟踪 StackTrace " at Microsoft.CSharp.RuntimeBinder.SymbolTable.GetOriginalTypeParameterType(Type t)\r\n at Microsoft.CSharp.RuntimeBinder.SymbolTable.AreTypeParametersEquivalent(Type t1, Type t2)\r\n at Microsoft.CSharp.RuntimeBinder.SymbolTable.LoadMethodTypeParameter(MethodSymbol parent, Type t)\r\n at Microsoft.CSharp.RuntimeBinder.SymbolTable.LoadSymbolsFromType(Type originalType)\r\n at […]

带有更新2安装的Visual Studio Express 2013 for windows在“configuration系统”中占用过多时间

Visual Studio Express 2013 for web已经安装在我的Windows 8.1笔记本电脑上。 现在我正在尝试安装与更新2寡妇的Visual Studio Express 2013。 它工作正常,直到最后一步,但在最后一步“configuration您的系统,这可能需要一个白色的”。 它就像无限循环一样。 它只是显示安装和进度 这需要3个多小时,而且还是一样的进展 。 在我已经决定取消设置后,但取消同样的问题,只是继续下去。 之后,我杀了任务pipe理器的过程。 然后重新启动笔记本电脑。 但重新启动后,安装程序将从其所在的位置开始。 仍然是同样的问题。 请有人帮忙 要么取消设置,要么安装成功。 但没有什么作用,就像无限循环一样。 任何想法我怎么能做到这一点?

Visual Studio 2013:CL.exe退出,代码为-1073741515

我有一个全新的 Windows 8.1 Pro x64安装与全新的 Visual Studio 2013 Pro。 当试图编译一个项目与平台工具集到Windows7.1SDK我越来越 Error 1 error MSB6006: "CL.exe" exited with code -1073741515. C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\Microsoft.Cpp.Win32.targets 57 5 MenuBrowser 我试着运行提供的“Windows SDKconfiguration工具”,除了得到关于Visual Studio 2005和2008未安装错误,我认为它做了它的工作。 我尝试手动编辑registry: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows 我手动将CurrentInstallFolder作为C:\Program Files\Microsoft SDKs\Windows\v7.1\和CurrentVersion作为7.1.7600.0.30514 。 如果我查看项目属性并单击其中的不同path/variables – >更多 – >macros,我可以看到$(WindowsSdkDir)是正确的。 任何想法,我应该尝试什么? 在Windows 7和VS 2012的旧开发计算机上从来没有遇到过这个问题。 LE作为一个笔记,如果我尝试一个新的项目与v120工具,它的工作原理,但我需要Windows7.1SDK工具。

如何诊断Windows上的堆损坏错误?

我正在使用Visual Studio 2013 Ultimate的Windows 8.1 64位。 我将一个程序从Linux移植到使用C ++,OpenGL和SDL的Windows。 我有适当的库自定义编译通过Cmake在Windows上的64位。 当我从Visual Studio运行程序时,IDE说有一个头损坏。 这并不奇怪,因为我使用指针来实例化对象,而且我正在使用原始指针,我打算为了参数而改变为智能指针。 以后我会做魔术。 与此同时,我用我的Linux计算机通过Valgrind诊断任何内存泄漏,Valgrind没有任何严重的报告。 然后我开始使用CppCheck,但是那里也没有任何严重的问题。 也许我在这里太宽松了,Windows可能实际上正在采取比Linux更严肃的东西,这是一个惊喜,因为MSVC比GCC更容易宽容。 所以,这个程序在Linux上工作,而不是在Windows上。 (太棒了!)而Visual Studio并没有通过抛出exception让我讨厌Windows的地方变得更加困难。 我开始search一个解决scheme,碰到这个叫做gflags或页面助手的东西,所以我安装了debugging工具,试图启动gflags,但我不知道如何使用它! 我后来发现,你必须使用一些其他的工具称为adp,然后附加gflags,所以当我启动adp它崩溃。 所以现在我不知道该做什么,并且正在放弃这个端口(这很有趣,因为很多人抱怨把程序从Windows移植到Linux是相当困难的,而事实恰恰相反)。 所以,现在我呼吁这个社区的帮助:我如何debugging/诊断Windows上发生的堆损坏错误,但不是在Linux上? 我真的应该使用gflags,还是应该用我的胆量呢?