草庐IT

visual-c++-2008-express

全部标签

资源中的 c++ visual studio 2010 exe 得到 Rebased?

有没有人注意到,如果您将一个exe作为资源导入,它会重新设置基址,而且它的PEheader似乎也被重建了?有时候这很烦人。有谁知道如何禁用rebase!?在C++中重现的步骤:1)编译一个helloworld并手动将其基址(在属性中)设置为0x10000002)创建第二个项目并将helloworld包含到资源中。同样手动设置它的基地址,如上。3)构建第二个项目4)从资源中提取exe,用Pe编辑器查看!它被设置回0x400000。为什么?! 最佳答案 您如何将EXE作为资源包含到第二个项目中?使用这些定义:#defineBINFILE

c++ - MS Visual Studio 2010如何使用.asm生成文件

我想问一些我想用VisualStudio2010尝试的事情。我通过在项目属性-->C/C++-->输出文件(/FAs)中将选项设置为“汇编程序输出”,从.cpp文件生成一个.asm文件。我的问题是,如果我想在.asm文件中进行一些修改,然后链接再次保留我在汇编级别所做的修改。如果您能提供确切的步骤,包括项目属性中可能需要的正确配置,那将非常有帮助。 最佳答案 这是教程http://www.cs.virginia.edu/~evans/cs216/guides/vsasm.html 关于c

c++ - Visual Studio 2010 找不到 iostream

我刚刚安装了VisualStudio2010,想通过编写一个helloworld应用程序来测试它。#includeusingnamespacestd;intmain(){cout尝试编译后出现这个错误errorC1083:Cannotopenincludefile:'iostream':Nosuchfileordirectory这是我的visualstudioinclude目录$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;还有

c++ - 在 Visual Studio 中调试 x64 单元测试

我在VisualStudio2012/13中调试C++x64单元测试时遇到困难。我的单元测试项目构建完美,适用于Win32和x64,但在调试测试时会加载符号,但会完全跳过设置的断点,并且程序永远不会暂停,就像您只运行测试时发生的情况一样。如果我为Win32构建单元测试项目,断点被命中,我可以像往常一样调试。在x64中调试单元测试是否有任何特殊设置?这些属性是从项目的默认Win32设置中复制的,并且删除了所有特定于win32的选项。这是配置单元测试项目的正确思路吗? 最佳答案 您必须将测试运行器的默认处理器架构设置为x64。您可以在测

c++ - 获取函数参数名称visual studio

我正在尝试从visualstudio中编译的损坏函数中获取参数列表和返回类型。我知道我可以用UnDecorateSymbolName(function.c_str(),undecoratedName,200,UNDNAME_COMPLETE))但这只是给了我另一个字符串,我必须弄清楚该字符串是否以返回类型或说明符开头。是否有返回SymbolNameInfo的函数?沿线的东西:structSymbolInfo{char[255]symbolNamechar[255]returnTypechar[255]parameters}; 最佳答案

c++ - Visual Studio 内存泄漏检测不打印文件名和行号

我想检查我的程序是否有内存泄漏并找到了thisMicrosoftarticle。我完全按照文章做了补充#defineCRTDBG_MAP_ALLOC#include#include和_CrtDumpMemoryLeaks();当程序退出时。它在我的输出窗口中正确地转储了所有内存泄漏信息,但问题在于:它不打印内存泄漏所在的文件名和行号!文章中说使用#define_CRTDBG_MAP_ALLOC它会打印文件名和行号,但它不适合我。我的输出看起来像这样Detectedmemoryleaks!Dumpingobjects->{3456}normalblockat0x038F81E8,560b

c++ - SQL Server 2008 中具有单个 INSERT 的多行

我正在测试使用单个INSERT语句插入多行的速度。例如:INSERTINTO[MyTable]VALUES(5,'狗'),(6,'猫'),(3,'鱼)这非常快,直到我在单个语句中传递50行,然后速度显着下降。插入10000行,每批50行需要0.9秒。插入10000行,每批51行需要5.7秒。我的问题分为两部分:为什么在50岁时性能下降如此严重?我能否依靠这种行为并将我的应用程序编码为从不发送大于50的批处理?我的测试是用C++和ADO完成的。编辑:看来下车点不是50行,而是1000列。我得到了50行20列或100行10列的类似结果。 最佳答案

c++ - 在 Visual C++ 2015 中使用 64 位编译器

我有一个包含大量模板的C++项目,它无法编译并显示fatalerrorC1060:compilerisoutofheapspace。有足够的可用内存。我尝试使用/Zm编译器选项进行支付,但没有用。我可以看到VisualStudio使用32位版本的编译器,我认为这就是这个错误的原因。有什么方法可以强制VisualStudio使用64位编译器吗?更新我的问题不是重复的。我看到了其他问题并尝试了这些建议。但在我的例子中,编译器需要超过6GB的RAM来编译项目。这是64位编译器分配的最大RAM量。在使用msbuild构建我的项目时,我可以使用64位编译器,但我想从VisualStudio构建它

c++ - 如何在 Visual Studio 2017 中的类型后禁用 * 的自动间距?

当我想输入类似的内容时Type*name;在输入行的某个时刻(只要我输入分号),VS2017决定自动空格到Type*name;我第一次删除空格后,IDE有一段时间没有再尝试这样做。当我键入一个类型指针变量时,由于某种原因,该行为再次开始,但立即键入另一行这样的行并没有重复自动间距...经过更多测试后,自动间距似乎只发生在访问说明符之后的第一行代码如果与Type*name;匹配时成为牺牲品的类中。classFoo{private:Type*name;//BecomesType*name;aftertypingthe';'public:Type2*name2;//Hereaswell};我

c++ - 这是在 C++03 中执行 "Expression SFINAE"的有效方法吗?

在C++11中,SFINAE很容易判断一个表达式是否有效。例如,想象一下检查某些内容是否可流式传输:templateautoprint_if_possible(std::ostream&os,constT&x)->decltype(osprint_if_possible如果os,将只参与过载决议是一个格式正确的表达式。liveexampleongodbolt.org我需要在C++03中做同样的事情,我发现sizeof可以提供帮助(因为我需要一个未评估的表达式上下文)。这是我想出的:templatestructsfinaer{};templatevoidprint_if_possible