Articles of visual studio 2013

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,还是应该用我的胆量呢?

无法运行在Windows XP中由VS2013创build的安装程序文件

在VS-2013,Dotnet4框架和32位体系结构中创build了一个用c#开发的安装文件。 它正在安装在Windows 7和Windows 8,但不是在Windows XP(SP3)与pipe理员previllege。 错误:“在安装应用程序之前安装程序中断,您需要重新启动安装程序才能再次尝试。 帮助需要在这方面。 Output of msiexec /i Setup.msi /l*v MyLogFile.txt === Verbose logging started: 2/12/2015 20:19:11 Build type: SHIP UNICODE 3.01.4001.5512 Calling process: C:\WINDOWS\system32\msiexec.exe === MSI (c) (D4:B4) [20:19:11:125]: Resetting cached policy values MSI (c) (D4:B4) [20:19:11:125]: Machine policy value 'Debug' is 0 MSI (c) (D4:B4) [20:19:11:125]: ******* RunEngine: ******* Product: […]

换页(\ f)和垂直标签(\ v)不能在C中工​​作

很长一段时间,我正在写一个C程序。 编写程序时,我不得不使用换页和垂直选项卡。 所以我在程序中使用了\ f和\ v。 但是,而运行代码,而不是填表和垂直选项卡,我可以看到男性和女性的符号。 我不知道为什么它不工作。 以下是我的代码示例: #include<stdio.h> #include<conio.h> void main() { printf("I am \f SpiderCode\n"); printf("I am \v SpiderCode\n"); getch(); } [ 注:我正在使用visual studio 2013上面的代码] 上面代码的输出

多字节到宽string转换函数“mbstowcs”是否在传递string文字时使用源文件的编码?

附录我自己的试探性答案出现在问题的底部。 基于utf8everywhere.org上的build议,我将一个陈旧的VC6 C ++ / MFC项目转换为VS2013和Unicode。 一路上,我一直在研究Unicode,UTF-16,UCS-2,UTF-8,Unicode和UTF-8的标准库和STL支持(或者说,标准库的缺乏支持), ICU , Boost .Locale ,当然还有需要UTF-16 wchar的Windows SDK和MFC的API。 正如我一直在研究上述问题一样,一个问题仍然反复出现,我无法以澄清的方式回答我的满意。 考虑C库函数mbstowcs 。 该function具有以下签名: size_t mbstowcs (wchar_t* dest, const char* src, size_t max); 第二个参数src是(根据文档 )a Cstring与多字节字符进行解释。 多字节序列应从初始转换状态开始。 我的问题是关于这个多字节string 。 我的理解是,多字节string的编码可能因string而异,编码也不是标准规定的。 MSVC文档似乎没有为这个function指定一个特定的编码。 我现在的理解是,在Windows上,这个多字节string需要用活动语言环境的ANSI代码页进行编码。 但是我的清晰度在这一点上开始消失。 我一直在想,源代码文件本身的编码是否会影响mbstowcs的行为,至less在Windows上。 而且,我也对编译时发生的事情和上面的代码片段在运行时发生了什么感到困惑。 假设你有一个传递给mbstowcs的string ,如下所示: wchar_t dest[1024]; mbstowcs (dest, "Hello, world!", 1024); 假设这个代码是在Windows机器上编译的 。 假设源代码文件本身的代码页与编译器运行的机器上当前语言环境的代码页不同 。 编译器会考虑源代码文件的编码吗? 源代码文件的代码页是否与编译器运行的活动语言环境的代码页不同?是否会影响生成的二进制文件? 另一方面,也许我错了 […]

错误C1083:无法打开包含文件:'\ inc \ wxp \ warning.h':没有这样的文件或目录

背景:所以我select了编程的Windows驱动程序模型,并试图build立它使用Visual Studio 2013旗舰版的第一个样本。 虽然这本书看起来很有名,但没有更新示例代码。 我看到一些迹象,使用旧的“build设”,而不是目前的MSBuild / Visual Studio。 但是这是另一个学习,我不准备做,除非需要(特别是因为我没有findnmake或build立速度不够快,我将学习更旧的构build过程,我不需要使用)。 问题:错误C1083:无法打开包含文件:'\ inc \ wxp \ warning.h':没有这样的文件或目录stddcls.cpp build立样本给了我这个错误。 我在包含path中包含了wdm.h和warning.h的文件夹。 Wdm.h得到解决,但warning.h继续抛​​出一个错误 – 我甚至不知道在包括/引用warning.h。 如果需要,我可以发布整个代码。 是的,我是驾驶员发展的新手。 如果这本书太旧了,可以使用指向Windows驱动程序开发的“新”教程的指针。

运行特定版本的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 […]