visual-c++相关内容

跨平台 ALIGN(x) 宏?

我想创建一个具有特定对齐方式的 struct. 我想对 GCC 和 VisualC++ 编译器使用相同的结构定义. 在 VisualC++ 中,通常这样做: __declspec(align(32))结构体{//...}; 在 GCC 中,通常会这样做: struct MyStruct{//...} __attribute__ ((aligned (32))); 我当然可以创建 ..
发布时间:2021-12-22 18:59:15 其他开发

用于维护 API 向后二进制兼容性的 GCC 与 MS C++ 编译器

我来自 Linux 世界,知道很多关于维护用 C++ 语言编写的动态库 API 的向后二进制兼容性 (BC) 的文章.其中之一是“C++ 的政策/二进制兼容性问题"http://www.codesourcery.com/public/cxx-abi/abi.html" rel="noreferrer">Itanium C++ ABI,由 GCC 编译器使用.但是我找不到与 Microsoft C+ ..
发布时间:2021-12-22 18:59:10 C/C++开发

在未排序数组中搜索元素的最快方法

我今天刚碰到这个问题,正在尝试一种比 O(N) 更好的解决方案,但找不到. 通过SO搜索但找不到这个问题. 是否有比 O(n) 更好的解决方案,或者是无法更好地解决的问题? 我最初的想法是二分搜索,但同样你需要对它进行排序,这又是 >n.我还想过只对搜索元素可能所属的数组的一半应用快速排序,但同样我们最初进行了 n 次比较,然后才丢弃另一半.是我做对了还是看错了方向? 我正 ..
发布时间:2021-12-22 18:59:02 其他开发

不使用 VCRedist_x86.exe 的 Visual C++ Redistributables

我在一个受到严格限制的环境中进行开发,但开发人员也有严格的控制权. VCRedist_x86.exe - 一个 4Mb 的可再发行文件 - 并不好玩(传输四个小时).我真的更喜欢只重新分发 MFC90.dll、msvcm90.dll、msvcp90.dll 和 msvcr90.dll - 这更像是 2Mb.但是,重新分发 Visual C++ 文件 说: 不支持重新分发在没有清单的情况 ..
发布时间:2021-12-22 18:58:55 其他开发

未找到在 C++ 'python33_d.lib' 中使用 Python 3.3

我试图在我的 C++ 代码中 #include 并且当我去编译我的代码时我收到这个错误: 致命错误 LNK1104:无法打开文件 'python33_d.lib' 我试图在我的计算机上找到 python33_d.lib 以包含在我的链接器依赖项中,但我找不到它.我已经能够找到python33.lib. 在哪里可以找到python33_d.lib,或者我该如何解决这个 ..
发布时间:2021-12-22 18:58:46 C/C++开发

如何在非 MFC 项目中使用 TRACE 宏?

我想使用 TRACE() 宏在 Visual Studio 的调试窗口中获取输出;2005 在一个非MFC C++ 项目中,但附加的头文件或库是需要吗? 有没有办法在调试输出窗口中放置消息,我该怎么做? 解决方案 构建您自己的方案. trace.cpp: #ifdef _DEBUGbool _trace(TCHAR *format, ...){TCHAR 缓冲区[10 ..
发布时间:2021-12-22 18:58:41 C/C++开发

在预编译头文件中放什么?(MSVC)

预编译头文件的最佳候选者是什么?我可以将 STL 和 Boost 标头放在那里吗,即使它们有模板?这会减少编译时间吗?另外,减少编译时间的最佳 IDE 设置是什么? 解决方案 快速回答:STL 和 Boost 头文件确实属于预编译头文件,即使这些头文件定义了模板类. 在生成预编译头文件时,编译器会解析头文本(一项重要任务!),并将其转换为针对编译器进行优化的二进制格式. 即使在 ..
发布时间:2021-12-22 18:58:36 C/C++开发

如何使用 Visual Studio 2010 开发 C?

有没有办法用 Visual Studio 2010 开发纯 ANSI C? 解决方案 是的,这是可能的.MSDN 在此处提供了一些信息:ANSI C 合规性. 第一步是将编译器设置为生成 C 代码,而不是 C++ 代码.从您的项目的属性中执行此操作.展开 C/C++ 标题,然后单击“高级".将“编译为"属性设置为“编译为 C 代码"(这与指定 /TC 开关 在命令行上).更简单的方法 ..
发布时间:2021-12-22 18:58:31 其他开发

MS C++ 2010 和 mspdb100.dll

Microsoft 的 C++ 编译器和链接器似乎与 mspdb100.dll 有着奇怪的关系.当从 IDE 运行时,编译器和链接器当然可以正常工作.从命令行运行任何一个时,我都会收到错误消息. 没问题,我找到了 DLL 并将其复制到目录中.现在编译器工作正常,但链接器死了. 我可以通过将“%VS10%\Common7\IDE"添加到我的 PATH 来解决该问题,但是由于各种原因(性能 ..

Visual Studio 2015 中的编译器是什么

谁能告诉我 Visual Studio 2015 为 C++ 项目内置了什么编译器?我尝试过并尝试过旧版本的编译器,它给了我其他编译结果.它是 GNU C++ 4.8.2 版还是更新的版本? 解决方案 他们有自己的编译器,使用 Visual C++ _____ 这是 IDE 版本的映射到编译器版本.他们通常会随每个主要的 IDE 版本发布一个主要的编译器版本. Visual S ..
发布时间:2021-12-22 18:58:12 C/C++开发

如何在没有运行时库的情况下使用 VC++ 内在函数

我参与了其中一项挑战,即您尝试生成尽可能小的二进制文件,因此我正在构建我的程序, 没有 C 或 C++ 运行时库 (RTL).我没有链接到 DLL 版本或静态版本.我什至没有 #include 头文件.我有这个工作正常. 某些 RTL 函数,例如 memset(),可能很有用,因此我尝试添加自己的实现.它在调试版本中运行良好(即使在编译器生成对 memset() 的隐式调用的那些地方).但是 ..
发布时间:2021-12-22 18:58:06 C/C++开发

调用 std::max 时出现问题

我在 Visual Studio 中编译了我的野牛生成的文件,并得到了这些错误: ...\position.hh(83): error C2589: '(' : '::'右侧的非法标记 ...\position.hh(83):错误 C2059:语法错误:'::' ...\position.hh(83): error C2589: '(' : '::'右侧的非法标记 ...\positi ..
发布时间:2021-12-22 18:57:52 C/C++开发

为什么 Visual C++ 缺乏重构功能?

在 Visual Studio 2008 中使用 C++ 编程时,为什么在使用 C# 时没有在重构菜单中看到的类似功能? 我经常使用重命名,但当它不存在时,您真的很想念它.我确定您可以获得提供此功能的插件,但为什么在使用 C++ 时不将其集成到 IDE 中?这是因为必须解析 C++ 的方式存在一些问题吗? 解决方案 C++ 的语法和语义使得正确实现重构功能极其困难.实现一些相对简单的 ..
发布时间:2021-12-22 18:57:43 C/C++开发

如何编写会崩溃并生成转储文件的示例代码?

我开始学习windbg,发现这篇好文章如何使用WinDbg分析崩溃转储 VC++ 应用程序? 现在我要按照说明一步一步来.问题来了:我需要编写一些可以立即崩溃的示例代码,并创建一些可以被windbg使用的转储文件. 这样的代码怎么写? void Example4(){int* i = NULL;*我= 80;} 上面的代码会立即崩溃;但是,我不知道在哪里可以找到转储文件? 谢 ..
发布时间:2021-12-22 18:57:39 C/C++开发

为什么我的应用程序需要 Visual C++ Redistributable 包

我正在 Visual Studio 中编写一个简单的 C++ 应用程序.它还有一个安装项目.它在我的开发机器上运行良好,但是当我在用户机器上安装这个应用程序时,它需要 Visual C++ Redistributable Package.我想知道为什么我的应用程序需要 C++ Redistributable?标准 C++ 运行时库随 Windows 一起提供,不是吗? 解决方案 Micro ..

如何在发布模式下调试?

我必须调试一个 C++ 项目,但由于一个依赖项无法在调试模式下编译,而且我目前还无法解决该问题,我想尝试在发布模式下调试该项目. 目前应用程序由于空指针而崩溃,但我没有导致错误的代码.由于断点显然在发布模式下被忽略,我想知道找到错误的最佳方法是什么. 解决方案 在 VS 中,右键单击您的项目,选择“属性". 单击 C/C++ 节点.将调试信息格式设置为 C7 兼容 (/Z7) ..
发布时间:2021-12-22 18:57:20 C/C++开发

ESP 和 EBP 之间是什么?

是的,我确定这已经被隐含地回答了很多次,但我似乎无法完全理解. 如果您有一个 (x86) 堆栈跟踪(例如,在 WinDbg 中查看它),并且您查看寄存器,那么 EBP 和 ESP 值相隔 x 字节意味着什么? 链接: https://stackoverflow.com/a/3699916/321013 https://stackoverflow.com/a/2466587/32 ..
发布时间:2021-12-22 18:57:10 其他开发

在 Visual Studio 2017 中计算 AES/CCM 的时间加密

我正在使用库 Crypto++ 5.6.5 和 Visual Studio 2017. 如何计算 AES-CCM 的加密时间? 解决方案 我想知道如何计算 AES-CCM 的加密时间. Crypto++ wiki 提供了一篇文章基准.它提供了许多有关库性能、吞吐量计算方式的详细信息,甚至还引用了测量实际吞吐量的源代码.信不信由你,对 clock 的简单调用就可以很好地测量批 ..
发布时间:2021-12-22 18:56:58 C/C++开发