visual-c++ 相关问题

Microsoft Visual C ++是Windows的C,C ++和C ++ / CLI编译器。最新版本的编译器是Visual C ++ 2017.编译器支持以下语言:C:支持C90和ISO C ++标准的大部分C99和C11部分,自Visual Studio 2017 C ++开始:支持大多数C ++ 11功能以及Visual Studio 2017 C ++ / CLI中的一些C ++ 14和C ++ 17功能

WM_GETTEXT 用法

我正在尝试获取应用程序中文本字段的状态。但我无法让它发挥作用。我使用 SendMessage 来获取 WM_GETTEXT,我将内容保存到 char * 中。 我将 char * 输出到文件中,b...

回答 3 投票 0

C:gcc 返回“多重定义”错误,但 msvc - 不返回

我这里有一个小程序: // 头文件.h #pragma 一次 整数a; int reta(); // 额外的.c #include“标题.h” int 雷塔() { 返回一个; } // main.c #include“标题.h” #包括<...

回答 0 投票 0

如何使用 clang 更快地编译?

我有一个 Visual Studio 2019 C++ 项目,我正在将其转换为 clang,我注意到 clang 版本的编译速度相当慢,如 -ftime-report 开关所报告的那样,平均而言......

回答 1 投票 0

使用 NetGen 创建简单的网格

我正在尝试使用 NetGen 手动创建网格,但在进入 Ng_GenerateVolumeMesh 时出现访问冲突异常。这是我使用的 C++ 代码: 命名空间 nglib { #包括 我正在尝试使用 NetGen 手动创建网格,但在进入 Ng_GenerateVolumeMesh 时出现访问冲突异常。这是我使用的 C++ 代码: namespace nglib { #include <nglib.h> } int main() { using namespace nglib; // NetGen initialization Ng_Init(); // Creating Ng_Mesh object Ng_Mesh* mesh = Ng_NewMesh(); // Adding vertices to the mesh double v0[] = { 0, 0, 0 }; double v1[] = { 1, 0, 0 }; double v2[] = { 1, 1, 0 }; double v3[] = { 0, 1, 0 }; double v00[] = { 0, 0, 1 }; double v10[] = { 1, 0, 1 }; double v20[] = { 1, 1, 1 }; double v30[] = { 0, 1, 1 }; Ng_AddPoint(mesh, v0); Ng_AddPoint(mesh, v1); Ng_AddPoint(mesh, v2); Ng_AddPoint(mesh, v3); Ng_AddPoint(mesh, v00); Ng_AddPoint(mesh, v10); Ng_AddPoint(mesh, v20); Ng_AddPoint(mesh, v30); // Creating faces (triangles) int trig0[] = { 0, 3, 2}; Ng_AddSurfaceElement(mesh, NG_TRIG, trig0); int trig1[] = { 0, 2, 1 }; Ng_AddSurfaceElement(mesh, NG_TRIG, trig1); int trig2[] = { 0, 5, 4 }; Ng_AddSurfaceElement(mesh, NG_TRIG, trig2); int trig3[] = { 0, 1, 5 }; Ng_AddSurfaceElement(mesh, NG_TRIG, trig3); int trig4[] = { 1, 6, 5 }; Ng_AddSurfaceElement(mesh, NG_TRIG, trig4); int trig5[] = { 1, 2, 6 }; Ng_AddSurfaceElement(mesh, NG_TRIG, trig5); int trig6[] = { 2, 7, 6 }; Ng_AddSurfaceElement(mesh, NG_TRIG, trig6); int trig7[] = { 2, 3, 7 }; Ng_AddSurfaceElement(mesh, NG_TRIG, trig7); int trig8[] = { 3, 4, 7 }; Ng_AddSurfaceElement(mesh, NG_TRIG, trig8); int trig9[] = { 3, 0, 4 }; Ng_AddSurfaceElement(mesh, NG_TRIG, trig9); int trig10[] = { 4, 6, 7 }; Ng_AddSurfaceElement(mesh, NG_TRIG, trig10); int trig11[] = { 4, 5, 6 }; Ng_AddSurfaceElement(mesh, NG_TRIG, trig11); // Meshing options Ng_Meshing_Parameters mp; mp.maxh = .1; mp.second_order = 1; // Mesh generation Ng_Result res = Ng_GenerateVolumeMesh(mesh, &mp); // Shutdown Ng_Exit(); return 0; } 我已经从源代码构建了该库。 https://github.com/NGSolve/ngsolve.git 提交日期 2024 年 4 月 3 日星期三 09:16:29。 例外情况是(抱歉,这是意大利语): TestNetGen.exe 中的 0x00007FFE894DEB45 (nglib.dll) 中的生成代码:0xC0000005:violazione di accesso durante la lettura del percorso 0x000001803583E410。 堆栈跟踪: [Frame inline] nglib.dll!netgen::TABLE<int,1>::operator[](int) Riga 252 C++ nglib.dll!netgen::Mesh::CalcSurfacesOfNode() Riga 2250 C++ nglib.dll!netgen::Mesh::Compress() Riga 4172 C++ nglib.dll!netgen::MeshVolume(const netgen::MeshingParameters & mp, netgen::Mesh & mesh3d) Riga 590 C++ nglib.dll!nglib::Ng_GenerateVolumeMesh(void * * mesh, nglib::Ng_Meshing_Parameters * mp) Riga 373 C++ TestNetGen.exe!main() Riga 73 C++ 编辑: 我发现这个问题似乎是同样的问题。 我的示例是正确的,但顶点索引必须从 1 开始。

回答 1 投票 0

如何将 DarkHelp 包含在 Windows 上的 cmake 项目中

Darkhelp 与 Darknet 携手合作 我已经在 Windows 上使用 cmake 构建了 Darkhelp 并准备好了构建目录。我想将 .lib 文件静态链接到我自己的 cmakelists.txt 我用过

回答 1 投票 0

奇怪的优化器行为

我试图解决用暴力破解Kid-RSA的问题(我知道我们可以使用扩展欧几里德算法)。 问题是示例任务使用 64 位数字并且按顺序...

回答 1 投票 0

为什么预定义宏__STDC_VERSION__未定义?

我想知道我当前在 Visual Studio C++ 中使用哪个 C 标准,但我在使用 __STDC_VERSION__ 预定义宏和其他 C99 预定义宏时遇到问题 - 错误指示...

回答 1 投票 0

Qt:在运行完美的项目上给出断言失败错误

我的项目完美运行。在 bitbucket [bitbucket.org] 上更新了我的项目,然后添加了一些评论。再次运行我的项目。奇怪的是,给出了这个错误。 QVector&l 中 ASSERT 失败...

回答 1 投票 0

我不知道如何解决将数组传递到类方法时出现的错误

当我将湖人队名单放入湖人队方法参数中时,它显示: 错误:删除时未知数组大小 和 注意:这里首先需要合成方法“Team::~Team()” 湖人队(“Los A...

回答 1 投票 0

无效的Resx; '<', hexadecimal value 0x3C, is an invalid attribute character

我在 Visual Studio 2022 上遇到了一些档案问题,所以我从资源中删除了它们(我对此还很陌生),然后,我遇到了这个问题,但我不知道该怎么办,只能出现...

回答 1 投票 0

调用 std::stacktrace_entry::description 的静态初始化 jthread 上出现死锁

下面的代码会导致退出 main() 时出现死锁 #包括 #包括 #包括 #包括 #包括 使用名字...

回答 1 投票 0

Visual Studio 无法识别 __AVX2__ 或 __AVX__

我正在用 C++ 实现一个简单的 SIMD 包装器。 为了使其跨平台,我使用 CMake 通过 Visual Studio 设置项目 我添加了 /Arch:AVX2,但 Visual Studio 无法识别 __AVX2__ ...

回答 1 投票 0

C++ MSVC - 显示未捕获的异常消息

我有一个简单的 C++ 代码,我尝试使用 Visual Studio 2019 进行编译: #包括 #包括 int main() { std::cout << "Hello World!\n"; throw std::

回答 2 投票 0

为什么返回引用类型的局部变量在VS2012中有效[重复]

我对下面的代码感到非常困惑,该代码在 VS2012 Update 5 中有效,但在 g++ 8.1 中失败。 int&func() { 整数 i = 0; 返回我; } int main() { int ri = func(); ri++; std::cou...

回答 2 投票 0

Visual studio c++,断点不停止调试DLL(GODOT GDExtention)

嘿总之,所有编译和运行,但断点没有被击中。 使用VC++ 2022。按照本教程操作 调用: scons -j4 target=template_debug dev_build=yes debug_symbols=yes 所有 dll ...

回答 1 投票 0

如何使用 CsvHelper 将字符串解析为标记列表?

我有一个 C# DLL,它已经使用 CsvHelper 来读取 CSV 文件。所以我想知道 CsvHelper 是否有能力让我简单地向它传递一个字符串(而不是文件)并返回令牌列表? 所以...

回答 1 投票 0

有使用 CStrBufT 和 CString 的有效示例吗?

官方文档:CStrBufT 我偶然发现了这门课。我进行了搜索并没有找到任何例子。是否属于以下情况: CString str1 = L”XYZ”; CStrBufT str1buf = CStrBufT(str1); ?确实有人用过这个

回答 1 投票 0

c++ 不存在从“myClass1”到“myClass1”的合适的用户定义转换

我对 C++ 非常陌生,当 Visual Studio 2010 突出显示此语法错误时,我感到非常困惑。 定义 类 myClass1 { 民众: myClass1(); } 类 myClass2 { 公开...

回答 1 投票 0

为什么在使用 Visual C++ 2022 编译时会出现奇怪的类方法重定义错误?

我正在尝试编写我的向量,使其尽可能类似于STL版本,我使用了这些类型名称。 使用 value_type = 类型; 使用迭代器=向量_迭代器 我正在尝试编写我的向量,使其尽可能类似于 STL 版本,我使用了这些类型名称。 using value_type = Type; using iterator = vector_iterator<value_type>; using const_iterator = const vector_iterator<value_type>; using reverse_iterator = std::reverse_iterator<iterator>; using const_reverse_iterator = std::reverse_iterator<const_iterator>; 并实现了很多方法,包括以下迭代器相关的方法。 constexpr iterator begin() noexcept; constexpr const_iterator begin() const noexcept; constexpr const_iterator cbegin() const noexcept; constexpr iterator end() noexcept; constexpr const_iterator end() const noexcept; constexpr const_iterator cend() const noexcept; constexpr reverse_iterator rbegin() noexcept; constexpr const_reverse_iterator rbegin() const noexcept; constexpr const_reverse_iterator crbegin() const noexcept; constexpr reverse_iterator rend() noexcept; constexpr const_reverse_iterator rend() const noexcept; constexpr const_reverse_iterator crend() const noexcept; 就像STL中的标准向量一样,每个begin()、end()、rbegin()和rend()都有两个重载,返回一个非常量迭代器和一个常量迭代器。 cbegin()、cend() 和 crbegin()、crend() 被视为返回 const 迭代器的方法的别名。 每组实现看起来像这样(例如begin()和rend()): // non-const version of begin() template <typename Type, typename Allocator> constexpr typename vector<Type, Allocator>::iterator vector<Type, Allocator>::begin() noexcept { return iterator(ptr_data_); } // const version of begin() template <typename Type, typename Allocator> constexpr typename vector<Type, Allocator>::const_iterator vector<Type, Allocator>::begin() const noexcept { return const_iterator(ptr_data_); } // cbegin() template <typename Type, typename Allocator> constexpr typename vector<Type, Allocator>::const_iterator vector<Type, Allocator>::cbegin() const noexcept { return const_iterator(ptr_data_); } // non-const version of rend() template <typename Type, typename Allocator> constexpr typename vector<Type, Allocator>::reverse_iterator vector<Type, Allocator>::rend() noexcept { return reverse_iterator(begin()); } // const version of rend() template <typename Type, typename Allocator> constexpr typename vector<Type, Allocator>::const_reverse_iterator vector<Type, Allocator>::rend() const noexcept { return const_reverse_iterator(begin()); } // crend() template <typename Type, typename Allocator> constexpr typename vector<Type, Allocator>::const_reverse_iterator vector<Type, Allocator>::crend() const noexcept { return const_reverse_iterator(cbegin()); } 然后,当我尝试运行测试项目时,Visual Studio告诉我,const版本的begin()、const版本的end()、cbegin()和cend()由于重新定义而触发C2373错误. C2373 'clb_container::vector::begin': 重新定义;不同类型修饰符 C2373 'clb_container::vector::cbegin': 重新定义;不同类型修饰符 C2373 'clb_container::vector::end': 重新定义;不同类型修饰符 C2373 'clb_container::vector::cend': 重新定义;不同类型修饰符 这是我的 vector_iterator 的构造函数: template <typename Type> vector_iterator<Type>::vector_iterator(pointer ptr) { iterator_ptr_ = ptr; } template <typename T> vector_iterator<T>::vector_iterator(const vector_iterator& target) { iterator_ptr_ = target.iterator_ptr_; } 我确信我没有两次定义这些方法。 我已尝试以下步骤: 我把上面提到的方法都注释掉了,重新编译了。错误立即消失。 然后我一一取消注释,发现只要const版本的begin()、const版本的end、cbegin()和cend()之一可用,C2373就会再次出现。 我将这些代码片段分别传递给 Copilot 和 Claude-3-Sonnet,他们没有发现明显的重新定义。 最后,我用Visual Studio Installer安装了“C++ Clang tools for Windows under Desktopdevelopment with C++”,并配置了测试项目使用Clang。 C2373消失,程序编译正常。但是,如果我将“平台工具集”更改回默认的“Visual Studio 2022(v143)”,则会再次出现错误。所以我认为这个问题很可能是由 Visual C++ 2022 引起的。 但是,作为我小小的STL的一部分,我希望它能够在大多数编译器下正常编译,而不是因为一些莫名其妙的原因而失败,尤其是在像Visual Studio这样用户众多的平台上,但我仍然找不到真正的问题. constexpr 意味着const... constexpr iterator begin() noexcept; constexpr const_iterator begin() const noexcept; 是相同的东西,除了返回类型。并且您不能执行仅返回类型不同的重载。

回答 1 投票 0

如何在没有 Visual Studio 的情况下下载并安装 Microsoft 的 Visual Studio C/C++ 编译器

我正在尝试在 Windows 上运行 C 代码,但我有一台低端 PC,我认为我不应该安装 Visual Studio。 如何只安装自带的C/C++编译器,而不安装Vi...

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.