visual-c++相关内容

为什么 Visual C++ 在 C 中对从 const void ** 到 void * 的隐式转换发出警告,但在 C++ 中却没有?

总结 Microsoft Visual Studio 中的 C/C++ 编译器在 C 程序尝试时发出警告 C4090将指向 const 数据的指针(如 const void ** 或 const char **)的指针转换为 void *(即使这样的类型实际上不是指向 const 的指针).更奇怪的是,同一个编译器默默地接受编译为 C++ 的相同代码. 这种不一致的原因是什么,为什么 ..
发布时间:2022-01-23 23:33:02 C/C++开发

C++ 标准:多集中意外的 const_iterator

我最近遇到了一个奇怪的问题,在迭代多重集时我会得到一个 const_iterator 而不是预期的 iterator.结果证明这对 MSVC 来说不是问题,但 g++ 给了我一个错误: 错误:初始化无效'myPtr&' 类型的引用从'const 类型的表达式boost::shared_ptr' 相关代码: typedef std::multiset;我的清单;我的清单 _mystuf ..
发布时间:2022-01-23 21:14:14 C/C++开发

如何以与 g++ 和 Visual C++ 相同的方式为类定义 UUID 并使用 __uuidof?

注意:这是一个question-with-answer,以便记录其他人可能认为有用的技术,以便了解其他人"更好的解决方案.请随意添加批评或问题作为评论.也请随意添加其他答案.:) Visual C++ 一直有一个语言扩展 __uuidof(classname) 可以检索 UUID,一个 128 位的通用唯一标识符,前提是 UUID 已通过 __declspec 与类关联,这也是 Visual ..
发布时间:2022-01-23 20:55:59 C/C++开发

未初始化的常量

使用当前的 MSVC 编译器可以完美编译: struct Foo{} 常量 foo; 但是,使用当前的 g++ 编译器编译失败: 错误:未初始化的 const 'foo' [-fpermissive]注意:“const struct Foo"没有用户提供的默认构造函数 如果我自己提供一个默认构造函数,它会起作用: struct Foo{富(){}} 常量 foo; 这是 MSVC 过于 ..
发布时间:2022-01-23 20:47:49 C/C++开发

奇怪的 MSC 8.0 错误:“ESP 的值未在函数调用中正确保存..."

我们最近尝试将我们的一些 Visual Studio 项目拆分为库,并且在一个测试项目中似乎一切都可以正常编译和构建,其中一个库项目作为依赖项.但是,尝试运行该应用程序给我们带来了以下令人讨厌的运行时错误消息: 运行时检查失败 #0 - ESP 的值未在函数调用中正确保存.这通常是调用使用不同调用约定声明的函数指针的结果. 我们甚至从未为我们的函数指定调用约定(__cdecl 等),将 ..
发布时间:2022-01-22 12:11:11 C/C++开发

Platform::String 真的那么没用吗?

我正在尝试在“Windows Store"(又名 Metro 风格)应用程序中用 C++/CX 编写几行代码,我很惊讶地看到 Platform::String 缺少许多基本字符串操作,例如 "替换" 或 “索引". 我想我可以使用内部数据,将其传递给 std:string 实例并应用我需要的操作,但我想知道我是否遗漏了一些“仅限平台::*"执行这些操作的方式. 请注意这个问题是关于 C ..
发布时间:2022-01-21 14:24:28 其他开发

在带有 Visual C++ 的 Windows 应用商店应用程序中使用 OpenCV

我正在尝试使用 OpenCV 库在我的 Windows 8 应用商店应用程序中使用 C++/CX 进行一些图像处理.我能够使用 Visual C++ 2012 构建 OpenCV 库,但是当我打包我的应用程序并运行 Windows 应用程序认证工具包,我收到几个错误,说 OpenCV DLL 使用了一些不受支持的 Windows API.如何修复这些错误? 解决方案 OpenCV 使用 C ..
发布时间:2022-01-21 13:57:37 其他开发

dxvahd.h Microsoft 头文件中的#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) 何时变为真

您好,我有 2 个 VC++ 解决方案“A"和“B"(VS2008)都具有相同的代码库(只有几行代码不同).在两者中都使用 DXVAHD.h. dxvahd.h 是一个标准的 Microsoft 头文件.如果我们打开这个头文件,我们会看到有一个条件 if"#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)" 我看到在 VC++ 解 ..

函数返回不返回值给main

所以,这是我在 C++ 中摆弄函数的第一个任务——我认为我理解这是因为它们与 C# 中的方法非常相似.但是,尽管我的 main 调用我的函数很好,并且函数运行并返回到 main - 它不会发回它在返回时调用的变量信息.我不确定我做错了什么 - 它似乎设置得当(IE - 就像我书中的示例代码一样)这是主要代码... #include #include #inclu ..
发布时间:2022-01-19 15:30:21 其他开发

c++ 编译器会优化掉未使用的返回值吗?

如果我有一个返回对象的函数,但调用者从不使用这个返回值,编译器会优化掉副本吗?(可能总是/有时/从不回答.) 基本示例: ReturnValue MyClass::FunctionThatAltersMembersAndNeverFails(){//对MyClass的成员做一些永不失败的事情返回成功的结果对象;}无效 MyClass::DoWork(){//做一些事情FunctionTha ..
发布时间:2022-01-19 15:19:54 C/C++开发

c++向量初始化

我一直在 Code::Blocks 和 MingW 编译器中使用以下向量初始化值: 向量v0 {1,2,3,4}; 之后,我不得不将代码移至 Visual Studio 项目 (c++) 并尝试构建.我收到以下错误: 局部函数定义是非法的 Visual Studio 编译器不支持这种初始化? 我需要如何更改代码以使其兼容? 我想初始化向量并同时用值填充它,就像一个数组一样. ..
发布时间:2022-01-19 00:04:05 C/C++开发

memset() 或值初始化以将结构清零?

在 Win32 API 编程中,通常使用具有多个字段的 C struct.通常它们中只有几个具有有意义的值,而所有其他值都必须归零.这可以通过以下两种方式之一实现: STRUCT theStruct;memset(&theStruct, 0, sizeof(STRUCT)); 或 STRUCT theStruct = {}; 第二个变体看起来更干净 - 它是单行的,它没有任何可能输入错误并 ..
发布时间:2022-01-18 23:21:33 C/C++开发