草庐IT

c++ - 代码在 Visual Studio 2010 中编译但根本不应该编译

以下源代码可使用VisualStudio2010正确编译:namespaceNS{classX{};XY(Xstr);}voidmyFun(){NS::Xx;Y(x);}(这是简化的代码,其中我自己的所有类和函数名称都已替换为X、Y、...)我预计Y(x)行将无法编译,因为它应该是NS::Y(x)。这段源码是用下面的命令编译的cl/cfile.cpp这里没有包含其他文件,没有其他命令行选项。为什么这个文件可以编译?VS2010中的错误?或者我(和我的其他3位同事)忽略了什么? 最佳答案 您遇到的问题是ADL(ArgumentDepe

c++ - Visual Studio 2010 c++ 编译器问题

我有以下非常奇怪的情况...我的VisualStudio编译器2010不喜欢以下代码:QStringListlst2=instantiatedTableInstances.split(strComma,skipper);for(inti=0;igetTableInstance(lst2.at(i));result->addInstantiatedTableInstance(tabInst);}它给了我:..\src\DeserializationFactory.cpp(1196):errorC2143:syntaxerror:missing';'before'constant'..\s

c++ - 将静态库链接到我在 Visual Studio 2010 上的项目

我想使用oscpack(http://code.google.com/p/oscpack/)作为我项目的静态库,但是当我尝试将它添加到示例中时,出现链接错误,例如:1>oscpackd.lib(UdpSocket.obj):errorLNK2019:unresolvedexternalsymbol__imp__socket@12referencedinfunction"public:__thiscallUdpSocket::Implementation::Implementation(void)"(??0Implementation@UdpSocket@@QAE@XZ)1>oscpac

c++ - 这些 Visual Studio 2010 错误和警告的原因是什么?

我不知道我从VisualStudio2010收到这些错误的原因。这是我程序中第343行到第408行的代码:intcreate_den_from_img(char*img_file_name_part,intxlen,intylen,intzlen){IplImage*imgs=0;charstr[80];unsignedchar*data,*imgdata;/*allocatingmemory*/data=(unsignedchar*)malloc(xlen*ylen*zlen*sizeof(unsignedchar));if(data==NULL){printf("errorinal

c++ - Visual C++ 2010 - fatal error LNK1169 : one or more multiply defined symbols found

这是一个程序:#includeusingnamespacestd;intmain(){cout>i;try{if(i==0)throw0;if(i==2)throw"error";}catch(inti){cout在编译时(Windows7上的MicrosoftvisualC++2010express),我收到错误消息:fatalerrorLNK1169:oneormoremultiplydefinedsymbolsfound 最佳答案 其实这段代码没有错误。源文件的数量可能是问题所在。在同一个编译器中将此代码作为一个新项目尝试,或

c++ - 有没有办法在不包含 stdafx.h 的情况下使用 VC++ 2010?

我已经成功安装了M$VC2010并开始使用它编写简单的程序。我对#include感到非常恼火,那么有没有什么办法可以不用它编译运行程序呢??? 最佳答案 它用于预编译的头文件。不要使用预编译的header,不要包含它。 关于c++-有没有办法在不包含stdafx.h的情况下使用VC++2010?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2909953/

c++ - 如何在 C++ 中进行内联汇编 (Visual Studio 2010)

我正在编写一个性能关键、数字运算的C++项目,其中70%的时间用于200行核心模块。我想使用内联汇编优化核心,但我对此完全陌生。不过,我知道一些x86汇编语言,包括GCC和NASM使用的语言。我所知道的:我必须将汇编程序指令放在_asm{}我希望它们所在的位置。问题:我不知道从哪里开始。当我的内联汇编发挥作用时,哪个寄存器中有什么? 最佳答案 您可以通过名称访问变量并将它们复制到寄存器中。这是来自MSDN的示例:intpower2(intnum,intpower){__asm{moveax,num;Getfirstargumentm

c++ - Visual Studio 2010 C++,无法打开包含文件 : 'afxwin.h' , 'TCHAR.H' 和 'cassert'

我是VS2010的新手,并尝试编译一个曾经在VS2008中工作过的项目。错误看起来很简单:stdafx.h(43):fatalerrorC1083:无法打开包含文件:'afxwin.h':没有这样的文件或目录stdstring.h(619):fatalerrorC1083:无法打开包含文件:'TCHAR.H':没有这样的文件或目录threads.h(52):fatalerrorC1083:无法打开包含文件:'cassert':没有那个文件或目录我google了一下,这种错误经常发生在VS2010Express版中,但是我用的是VS2010ProfessionalEdition。我已经检

c++ - 这是 "new auto(enum_type)"的 Microsoft VC++ 2010 编译器错误吗

环境:MicrosoftVisualStudio2010withSP1Preminum(10.0.40219.1SP1Rel),WindowsXPSP3VC10编译器支持auto关键字,但推导的类型相关信息对于枚举似乎并不总是正确的。例子:#includeenumfruit_t{apple=100,banana=200,};intmain(){constautopa=newauto(banana);constautopb=newfruit_t(banana);static_assert(std::is_same::value,"notsame!");deletepb;deletepa;

c++ - 什么 VS2010 C 项目设置导致 exes 需要兼容模式

我已经在我的Windows764位机器上运行和编译了几个月的程序,但最近我不得不更改它使用的静态库的几个VC项目设置,现在生成的可执行文件需要我在“WindowsXP兼容模式”下运行它。在装有VisualStudio2010SP1的Windows764位机器上编译我正在生成的程序是在Win32Debug模式下构建的。静态库项目指定目标机器/X86。当我从调试器运行程序时,它会启动并运行,但是如果通过Windows图标运行,它需要XP兼容模式。当尝试在调试器之外启动时,EXE会在任务管理器中显示一秒钟然后消失。我已尝试在其上使用MicrosoftApplicationVerifier,但