visual-c++相关内容

错误请 #define _AFXDLL 或不使用/MD[d] 即使在项目属性中进行更改后也会发生

我正在 Visual Studio 2011 中处理 Win32 项目.当我包含 afx.h 或 afxwin.h 时,它会生成 MFC 错误.为了解决这个问题,我在项目属性选项卡中进行了以下更改:1)MFC的使用:在共享DLL中使用MFC2) C++ -> 代码生成 -> 运行库 -> 多线程调试DLL(/MDd) 当我构建解决方案时它仍然给我以下错误: 1>C:\Program F ..
发布时间:2022-01-12 14:26:48 C/C++开发

由于未定义的行为或编译器错误导致 C++ 代码崩溃?

我遇到了奇怪的崩溃.我想知道这是否是我的代码或编译器中的错误.当我使用 Microsoft Visual Studio 2010 编译以下 C++ 代码作为优化版本构建时,它在标记的行中崩溃: struct tup { int x;整数y;};C类{上市:结构 tup* p;struct tup* operator--() { return --p;}struct tup* operator++ ..

自动创建 Visual C++ 故障转储

有没有办法在应用程序崩溃时(在 Windows 操作系统上)自动创建崩溃转储文件,就像我可以使用附加的 Visual Studio 调试器保存一样?也就是说,我希望能够使用自动创建的故障转储文件在 Visual Studio 中调试我的应用程序. 解决方案 更新: Debug Diag 2.0 现已推出.此版本具有对 .NET 转储的本机支持. 是的,可以使用 DebugDiag 1 ..
发布时间:2022-01-12 12:01:26 其他开发

catch(...) 没有捕获异常,我的程序仍然崩溃

我的应用程序在初始化时崩溃的测试仪出现问题.我添加了更多的日志记录和异常处理,但它仍然崩溃并显示通用的“此程序已停止工作"消息,而不是触发我的错误处理. 鉴于我的 main() 看起来像这样并且有 catch(...) 在什么情况下不会触发? 尝试{simed::CARmApp 应用程序(0,cmd);for(bool done = false;!done;){完成 = !app.fram ..
发布时间:2022-01-12 11:54:36 C/C++开发

为什么 ntdll.dll 会使我的 c++ 可执行文件崩溃?

我无法让 Visual C++ 可执行文件工作,应用程序崩溃,这是我在事件查看器中看到的. 错误应用程序名称:submit.exe,版本:0.0.0.0,时间戳:0x50a3cce7错误模块名称:ntdll.dll,版本:6.1.7601.17514,时间戳:0x4ce7ba58异常代码:0xc0000374故障偏移:0x000ce653错误进程ID:0x8fc错误应用程序启动时间:0x01cd ..
发布时间:2022-01-12 11:52:55 其他开发

Visual Studio Profiler 显示“[损坏]"作为函数名

我正在尝试分析我的 c++ dll,但分析器无法与我一起使用.我想查看调用树等等,但只有 stl 函数显示,而且并非全部不相交 - 当我点击任何函数时,它们的调用者是“[broken]". 我不知道我的 google 技能是否不够,但我找不到任何关于 [broken] 意味着什么以及如何修复它的信息. 这是一个调试版本.我不能保证这不是由于某些编译器设置造成的,但我觉得我什么都试过了. ..

VS2017 和 VS2015 应用程序与 dll 之间的官方二进制不兼容是否准确?

TL;DR - MS 文档指出 VS2015 和 VS2017 库之间的二进制兼容性是单向,而我认为它必然是双向的.问题在哪里? 首先,背景: 任何 MSVC++ 构建的库都是 在 VS2015 和 VS2017 之间正式二进制兼容. 具体来说,您可以将 VS2015 C++ 应用程序与 2017 年的 MSVCRT140 版本一起使用.(VCRedist 向后兼容) 官方文档网站 ..

Visual-C++-2017 二进制文件是否与 VC++-2015 兼容?

Steve 告诉我 VC 2015 和 VC 2017 实际上(将)二进制兼容. 我发现 零 信息 wrt.这在 2017 (RC) 发行说明 - 或漂亮在任何地方都可以,所以这里是: 是用VC++-2017 二进制兼容 VC++-2015 构建的 DLL? 2017 年和 2015 年是否使用相同(动态)运行时库? 如果是,那么平台工具集 Visual Studio 2017 ( ..

拦截 FIleSytemCall 以进行删除

有没有办法在 windows 执行删除之前检测文件的删除?我找到了 FileSystemWatcher 类,但仅在执行删除操作后才引发事件,但我想在用户/进程选择删除它时捕获删除操作.您可以监视文件系统表,但要寻找更好的方法.感谢您的帮助. 解决方案 我认为最简单的方法是使用钩子来获得通知(并最终停止)进程.它不能在 .NET 中完成,因此您必须 DllImport 大量结构和少量函数来 ..
发布时间:2022-01-11 23:03:28 C#/.NET

VisualStudio 的零参数参数计数宏

gcc 确实支持使用 ## __VA_ARGS__ 约定的零参数的参数计数宏.以下作品用 gcc 编译: #include #define NARGS(...) __NARGS(0, ## __VA_ARGS__, 5,4,3,2,1,0)#define __NARGS(_0,_1,_2,_3,_4,_5,N,...) N主函数(){printf("%d\n", NARGS() ..
发布时间:2022-01-11 20:15:26 C/C++开发

宏扩展:带逗号的参数

我正在处理的代码使用了一些非常复杂的宏 voodoo 来生成代码,但最终有一个看起来像这样的构造 #define ARGS 1,2,3#define MACROFUNC_OUTER(PARAMS) MACROFUNC_INNER(PARAMS)#define MACROFUNC_INNER(A,B,C) A + B + Cint a = MACROFUNC_OUTER(ARGS); 期望得到的 ..
发布时间:2022-01-11 20:03:08 其他开发

C/C++: 如何使用 do-while(0);构造没有像 C4127 这样的编译器警告?

我经常在我的#defines 中使用 do-while(0) 构造,原因描述为 在这个答案中.此外,我正在尝试使用编译器的尽可能高的警告级别来捕捉更多潜在问题,并使我的代码更加健壮和跨平台.所以我通常将 -Wall 与 gcc 和 /Wall 与 MSVC 一起使用. 不幸的是,MSVC 抱怨 do-while(0) 构造: foo.c(36) : 警告 C4127: 条件表达式是常量 ..
发布时间:2022-01-11 19:32:18 C/C++开发

在字符串文字内展开宏

我要做的是#define一个宏: #define a(2) 然后在字符串文字中使用它:string = "a";. 我希望该字符串不被解释为字符串,而是获取 a 的值,即 2.我没有成功,有人可以帮忙吗? 解决方案 #define STRINGIFY2(X) #X#define STRINGIFY(X) STRINGIFY2(X)#定义A 2 然后 STRINGIFY(A) 会 ..
发布时间:2022-01-11 19:30:00 C/C++开发

为什么我需要宏的双层间接?

在:C++ FAQ - 其他技术问题 - [39.6] 需要将两个标记粘贴在一起的宏应该怎么做? 谁能解释一下为什么?我读到的只是相信我,但我不能仅仅因为有人这么说就相信某事. 我尝试了该方法,但找不到任何出现的错误: #define mymacro(a) int a ## __LINE__我的宏(前缀)= 5;mymacro(__LINE__) = 5;int test = pre ..
发布时间:2022-01-11 19:21:42 C/C++开发