Tag: visual studio

是否在stdlib.h中定义了max(a,b)?

我正在使用两台计算机,每台计算机都有不同版本的visual studio。 在visual studio 2008计算机上,我的代码编译。 在visual 2010计算机上,我的代码无法编译,因为我使用的是宏max(a,b) ,据我所知,它是在stdlib.h中定义的。 我不能只定义max(a,b)因为它将是visual 2008计算机上的重新定义。 但如果我没有定义max(a,b)我的代码就无法在visual 2010计算机上编译。 有解决方案吗

在VS 2015中链接第三方库

我正在使用Visual Studio 2015开发一个C ++项目我试图链接一个外部库(在本例中为libtins )。 该库目前驻留在我的桌面上。 我已尝试在链接器设置下编辑项目设置,但它没有给我任何选项来包含任何自定义库。 我如何在VS 2015中执行此操作?

是否可以在Visual Studio中加载不匹配的符号?

我有一个Windows minidump(C代码)和一个相应的exe文件。 不幸的是,我没有完全匹配的.pdb文件,但我确实有.pdbs包含完全相同的代码,只是在不同的时间构建。 在Windbg中,我可以使用: .symopt+0x40 告诉它加载任何东西,甚至是不匹配的符号文件。 这在这个特定的实例中效果很好,我能够得到一个合适的调用堆栈。 我只是好奇Visual Studio是否有这样的function。 我们在这里使用几乎每个不同版本的VS,因此它可能属于哪个版本并不重要。谢谢。

反汇编Microsoft Visual Studio 2003编译器输出

我看到我认为Microsoft Visual Studio 2003工具输出的目标文件的奇怪行为。 file实用程序告诉我: asmfile.obj: 80386 COFF executable not stripped – version 30821 对于汇编程序创建的对象,但对于来自C文件的对象,我得到: cfile.obj: data 使用Microsoft的dumpbin实用程序和我从cygwin获得的objdump ,我可以反汇编程序集生成的文件,但是我从C-built文件的任一实用程序中都得不到有用的结果。 我有几个与这种差异有关的问题: MSVC2003编译器生成的目标文件格式是什么? 我该如何反汇编该目标文件? 我对使用AT&T语法进行反汇编特别感兴趣 – 我正在使用一个大型源代码库的端口来使其与GCC一起工作,我想使用此方法作为一些内联汇编例程的快捷方式。项目。 编辑:添加更多信息。 当我在其中一个文件上运行dumpbin时没有给出任何结果: C:\> dumpbin /disasm Func.obj Microsoft (R) COFF/PE Dumper Version 7.10.6030 Copyright (C) Microsoft Corporation. All rights reserved. Dump of file Func.obj FileType: ANONYMOUS OBJECT 使用objdump ,它给出: $ objdump […]

链接Visual Studio中的第三方库

您好我是C编程的新手,我之前没有使用过visual studio或第三方库。 我正在尝试用FMOD做一些简单的事情,需要链接fmodvclib,fmod.h,当然还有fmod.dll 我把“fmodex_vc.lib”放在附加的依赖项和include和库目录中的低级库的路径以及其他包含库,但是当我构建它时,它给了我: “无法打开源文件”fmod.h“标识符”FSOUND_SAMPLE“未定义无法打开包含文件:’fmod.h’:没有这样的文件或目录 但即使是奇怪的是:无法打开源文件“stdio.h” #include “fmod.h” #include FSOUND_SAMPLE* handle; int main(void) { int input; FSOUND_Init(44100, 32, 0); handle = FSOUND_Sample_Load(0, “test.ogg”, 0, 0, 0); FSOUND_PlaySound(0, handle); while (input != 0) { scanf_s(“&d”, &input); } FSOUND_Sample_Free(handle); FSOUND_Close(); } 任何帮助,将不胜感激!

内存对齐检查

我想检查分配的内存是否对齐。 我正在使用_aligned_malloc(size, align); 它返回一个指针。 我可以通过简单地将指针内容除以16来检查它吗? 如果指针内容可被16整除,是否意味着内存对齐了16个字节?

Visual Studio 2010在计划结束后退出

我正在通过编译C程序来尝试Visual Studio 2010。 在“DOS”命令窗口中显示解决方案后,窗口立即关闭。 在Visual Studio 2008中,按任意键获取消息以继续并按下一个键关闭命令提示符窗口。 如何在2010年设置此行为?

如何使用CMAKE从命令行在Windows上构建x86和/或x64?

使用Visual Studio让cmake在Windows上构建x86的一种方法是这样的: 启动x86的Visual Studio命令提示符 运行cmake: cmake -G “NMake Makefiles” \path_to_source\ NMAKE 使用Visual Studio让cmake在Windows上构建x64的一种方法是这样的: 启动x64的Visual Studio命令提示符 运行cmake: cmake -G “NMake Makefiles” \path_to_source\ NMAKE 使用Cmake,我如何编译其中一个或两个架构? (就像Visual Studio在IDE中的表现一样)

我遇到多个字符和scanf_s()的问题

我正在尝试使用scanf_s()来读取多个值,但每次运行程序时,我都会得到 实验室中0x592AD6AC(msvcr120d.dll)的未处理exception2.exe:0xC0000005:访问冲突写入位置0x00000000。 在弹出窗口中。 我该如何解决? float inTemp; char inUnit; char outUnit; printf(“Please enter the starting temperature with its units and the units\nyou would like to convert to (ie 74.5 FC): “); scanf_s(“%f %c %c”, &inTemp, &inUnit, &outUnit); //takes in all user input (NOT WORKING)

如何使用函数freopen_s

为了从文本文件中读取输入,我编写了以下代码: int main(){ int x; #ifndef ONLINE_JUDGE freopen(“input.txt”, “r”, stdin); #endif scanf(“%d”, &x); printf(“%d\n”, x); system(“pause”); return 0; } 它的效果非常好。 但是,在visual studio中,编译器因为freopen而给我一个错误,并建议我使用freopen_s代替。 我试着理解函数freopen_s是如何工作的,但我不能。 我的代码: int main(){ int x; #ifndef ONLINE_JUDGE FILE *stream; freopen_s(&stream, “input.txt”, “r”, stdin); #endif scanf(“%d”, &x); printf(“%d\n”, x); system(“pause”); return 0; } 它不会输出任何内容,甚至“暂停”也不起作用。 程序完成后,cmd会立即消失,不会打印任何内容。 我不知道为什么在freopen_s中使用“stream”。 谢谢你回答我的问题。