Articles of 视觉工作室2010年

对于Windows 7上的64位安装,Python PIP有MS Visual Studio 2010 Express的path问题

我正在创build一个干净安装的Python 3.3,64位版本的virtualenv。 (注:我在我的电脑上安装了几个包括WinPython的python安装程序,但是想要为我正在处理的几个项目设置干净和小的virtualenvs。WinPython版本工作得很好。)当我使用pip尝试安装软件包时,我收到了一个错误信息(如果需要,可以包含pip日志)。 最终,错误信息的最后一行是: File "c:\python33-b\Lib\distutils\msvc9compiler.py", line 287, in query_vcvarsall raise ValueError(str(list(result.keys()))) ValueError: ['path'] 我调查了msvc9compiler.py中函数query_vcvarsall的结果。 我发现这个函数在我的电脑上查找MS Visual Studio 10 Express的vcvarsallpath。 它正在寻找4个组件:INCLUDE =,PATH =,LIB =和LIBPATH =。 这些是特定于MS VS 2010.我的安装发送了一个“amd64”参数到这个函数。 它找不到PATH =语句,但find了vcvarsall.bat文件。 当我欺骗这个函数来使用“x86”参数时,它发现了所有这4个语句,看起来好像运行的很好。 我花了一些时间在网上研究这个。 我发现MS VS Express 2010默认安装为32位。 一个必须设置它运行为64位(这意味着它将设置上面所需的语句。)显然有一个错误,并没有安装这个版本的64位工具。 所以我安装了MS SDK以安装64位工具。 然后我发现有一个修复,并安装(在下面列出的链接)。 有几种方法可以为64位VS创buildpath。 一个是在MS VS的命令行上运行vcvarsall amd64 。 这导致了一个消息说工具没有安装在我的电脑上。 这些工具位于C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64目录中。 它显然正在寻找的文件是vcvars64.bat(或类似的东西)。 我有目录但不是batch file。 […]

语法错误:缺less';' 在编译winnt.h时标识符“PVOID64”之前

我最近得到了一个应用程序的源代码。 当我尝试构build解决scheme时,在包含winnt.h所有部分中出现错误。 错误代码有点不同,但是它们总是指向winnt.h中的这些行: typedef void *PVOID; typedef void * POINTER_64 PVOID64; 和 struct { DWORD crc; BYTE rgbReserved[14]; } CRC; 那么,这可能是什么原因呢? winnt.h是一个标准的头文件,并没有被修改。 这与我使用VS 2010或使用64位窗口有什么关系? 还是需要某种configuration? 编辑:这是确切的错误代码: 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winnt.h(290): error C2146: syntax error : missing ';' before identifier 'PVOID64' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winnt.h(290): error C4430: missing type specifier – int assumed. Note: C++ does […]

在Windows中build立Luabind

我在使用VS 2010在Lua和Luabind下运行Windows 7时遇到了问题。到目前为止,我已经从http://luabinaries.sourceforge.net和Luabind从http://www.hci.iastate.edu/下载了LuaBinaries 。 〜rpavlik / doxygen / luabind / docs.html 。 我已经在Luabind的INSTALL文件中提到的命令行中设置了我的环境variablesBOOST_ROOT和LUA_PATH,并且我不能通过这个错误: C:\lua\luabind>bjam stage error: at Jamroot:41 error: *** Unable to determine Lua include directory. 如果有人能够在Windows下build立Luabind任何提示是非常感谢! 更重要的是,如果任何人能够与Lua&Luabindbuild立一个VS 2010 C ++项目并愿意分享,我将不仅仅是感谢!

使用Visual Studiodebugging器与不使用debugging器运行可执行文件之间的区别

我试图debugging一个问题,其中一个可执行文件生成可重复的输出(我想要),直接从Visual Studio执行,但不会产生可重复的输出时,从命令提示符执行。 这是一个单线程的应用程序,所以在时间方面不应该有任何奇怪的行为。 有人可以列举两种环境之间可能的差异吗? 我确定实际的可执行文件是相同的 – 它们都是发布版本,并且运行相同的.exe文件。 这里是环境和结果: 直接从命令提示符运行(cmd):不可重复输出 从Visual Studio运行debugging(F5):可重复的输出 从Visual Studio运行而不进行debugging(Ctrl-F5):不可重复输出 我知道工作目录可能是不同的,但我手动调整,以确保工作目录是相同的。 基于这些结果,它看起来像运行“debugging”(即使在发布版本)以某种方式解决了这个问题。 这是否指向可能的罪魁祸首? 运行可执行文件与debugging和不运行之间有什么区别? 解决scheme:正如在接受的答案中指出的,debugging堆是问题。 问题在于我们的代码深处,有人在初始化之前正在访问大型数组的一部分。 他们已经用malloc分配了内存,并没有将内存初始化为0.debugging堆会(我认为)用一些可重复的值填充数组,而当debugging器没有连接(即从命令行运行或与Ctrl-F5)的值更随机,有时会造成程序行为的微小偏差。 不幸的是,调整是如此微妙以至于几乎不可察觉,并且在处理的第一个“框架”之后,有问题的记忆被适当地重新设置,但是初始条件已经略微不同,损坏已经完成。 混沌理论在行动! 感谢您的指导。 一个很好的debugging技巧帮助:写一个自定义的malloc,立即用完全随机的数据填充内存。 这样,在使用之前,您可以确保自己正确地初始化它,否则每次运行结果都会(希望)变得疯狂,即使在debugging模式下也是如此。

错误C1189:#error:该文件需要_WIN32_WINNT至less定义为0x0500。 build议使用0x0501或更高的值

我在VS2010中创buildMFC项目(Windows XP)。 我拿这个错误: error C1189: #error : This file requires _WIN32_WINNT to be #defined at least to 0x0500. Value 0x0501 or higher is recommended. 如果我添加afxcomctl32.h : #define _WIN32_WINNT 0x0501 ,我采取60 +错误。 在项目中,我没有添加任何东西。 使用如Visual Studio创build。 我需要做什么呢?

如何从麦克风捕获audio以通过套接字发送?

我正在使用Windows 7并使用Visual Studio 2010开发类似于聊天的应用程序。我正在寻找一种从麦克风(或更确切地说,来自默认logging设备)捕获audio的简单方法,从所述input中收集缓冲区,然后发送它在一个套接字上。 我已经看到DirectX解决scheme的build议,但从我的研究来看,这与简单的情况恰恰相反。 5000行简单的捕获/保存文件程序的示例代码? 这根本不适用于我(是的,这是SDK提供的官方示例)。 无论如何,我并不需要它是跨平台的,我真的更喜欢Windows已经提供的东西,尽pipe我不介意安装一个库,只要不需要比写硬件驱动程序更长的时间从头开始弄清楚(夸张)。 我听说过这个waveInOpen函数,但奇怪的是我找不到任何有关如何使用它的演示。 如果任何人有一个想法或链接到一些示例代码,我将不胜感激。 谢谢大家的时间! PS我可以自己弄清楚networking部分。 我只需要访问原始audio数据缓冲区。

如何在C ++中覆盖cout?

我有一个要求,我需要使用printf和cout来显示数据到console and file 。 对于printf我已经做了,但对于我很挣扎,怎么做? #ifdef _MSC_VER #define GWEN_FNULL "NUL" #define va_copy(d,s) ((d) = (s)) #else #define GWEN_FNULL "/dev/null" #endif #include <iostream> #include <fstream> using namespace std; void printf (FILE * outfile, const char * format, …) { va_list ap1, ap2; int i = 5; va_start(ap1, format); va_copy(ap2, ap1); vprintf(format, ap1); vfprintf(outfile, format, ap2); va_end(ap2); […]

DLL函数名称使用dumpbin.exe

我已经在Visual Studio 2010中编写了一个包含许多函数和类的.dll库。当我查看文件的内容时: dumpbin.exe /EXPORTS myDll.dll 我使用某种函数位置指针获取长的函数名,如下所示(在.dll中的第二项): 2 1 0001100A ?Initialize@codec@codecX@@SANNN@Z = @ILT+5(?Initialize@codec@codecX@@SANNN@Z) 这在某种程度上很难阅读,但是我从其他.dll-s中看到了“更好的”过程/函数列表,如下所示: 141 8C 00002A08 PogoDbWriteValueProbeInfo 我怎样才能让这个.dll列表看起来像这样? PS:我的dll源代码如下所示: namespace codecX { class codec { public: static __declspec(dllexport) double Initialize(double a, double b); …

Visual Studio中的“win32 project”名称与x86或x64平台的关系如何?

我正在使用Visual Studio进行c ++编程,在x86环境(32位模式)下工作和编写程序之后,我尝试在x64环境中构build我的x86项目,所以我认为应该创build一个win64控制台项目而不是win32 console项目,但VC2010中没有这样的选项。 所以我想要问,为了build立x64项目,我还应该selectwin32项目,并使用这里的指令更改项目内部x64编译的设置? 我正在使用Windows 7 64位。 如果你的答案是肯定的,那为什么叫做win32?

什么是RpcNdr.h

微软在哪里摆脱困境? #define small char 你不能只是添加保留的语言,并悄悄包含在平台SDK中! 更重要的是我该如何摆脱它! 编辑:如何find什么是包含在Visual Studio中的什么地方 – 在Visual Studio中显示C ++文件的#include层次结构