小编Waq*_*med的帖子

用java解析DOM中的规范化 - 它是如何工作的?

本教程中,我在代码中看到了DOM解析器的下面一行.

doc.getDocumentElement().normalize();
Run Code Online (Sandbox Code Playgroud)

为什么我们这样做正常化?
我读了文档,但我听不懂.

将所有Text节点放在此Node下面的子树的完整深度中

好的,那么有人可以告诉我(最好有图片)这棵树是什么样子的吗?

任何人都可以解释为什么需要规范化吗?
如果我们不规范化会发生什么?

java xml computer-science dom

230
推荐指数
3
解决办法
12万
查看次数

GLSL着色器的正确文件扩展名是什么?

我正在学习glsl着色,我遇到了不同的文件格式.我见过人们给出他们的顶点和片段着色器.vert.frag扩展.但我也看到.vsh.fsh扩展,甚至两个着色器在一个.glsl文件中.所以我想知道是否有标准的文件格式,或者哪种方式是'正确的'?

opengl shader glsl

124
推荐指数
4
解决办法
5万
查看次数

为什么我在GDB中收到消息"单步执行直到退出......没有行号信息"?

我使用gcc 4.4.1使用标志编译了我的C程序-g,但是当我尝试在gdb 7.0版中逐步执行我的一个函数时,我收到了消息:

"Single stepping until exit from function _DictionaryTree_getNodeList, 
which has no line number information."
Run Code Online (Sandbox Code Playgroud)

有人能告诉我为什么会这样吗?

c gcc gdb

40
推荐指数
3
解决办法
4万
查看次数

glUseProgram(0)有什么作用?

OpenGL文档glUseProgram声称,使用参数调用它将导致着色器执行的结果undefined.

但是,经过一番搜索后,我看到了几个人glUseProgram用来卸载当前着色器程序的例子.

这种行为可靠吗?如果没有,那到底究竟做了glUseProgram(0)什么?

opengl api shader

18
推荐指数
2
解决办法
2万
查看次数

c++20 中的 std::jthread 是什么?

  1. 它提供了哪些优势 std::thread
  2. 它会弃用现有的std::thread吗?

c++ multithreading c++20

15
推荐指数
1
解决办法
1729
查看次数

在Mingw 64bit上使用Clang

我想有除了铛GCCMinGW的,64位的Windows 7环境下,无论是使用标准库从GCC.我正在使用来自http://sourceforge.net/projects/mingwbuilds/的 gcc_x64_4.8.1_win32_seh_rev1和Qt .

我在这个环境中构建了clang 3.3,没有任何标志(只是解决了HAVE_EHTABLE_SUPPORT编译问题).

我使用qmake构建过程,项目文件还有这些行用于clang(只是发布模式):

QMAKE_CC = clang
QMAKE_CXX = clang++
QMAKE_CXXFLAGS_RELEASE += -Wno-ignored-attributes
QMAKE_CXXFLAGS_RELEASE += -I"C:/tc/gcc_x64_4.8.1_win32_seh_rev1/mingw64/lib/gcc/x86_64-w64-mingw32/4.8.1"
QMAKE_CXXFLAGS_RELEASE += -I"C:/tc/gcc_x64_4.8.1_win32_seh_rev1/mingw64/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++"
QMAKE_CXXFLAGS_RELEASE += -I"C:/tc/gcc_x64_4.8.1_win32_seh_rev1/mingw64/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++/x86_64-w64-mingw32"
QMAKE_CXXFLAGS_RELEASE += -I"C:/tc/gcc_x64_4.8.1_win32_seh_rev1/mingw64/x86_64-w64-mingw32/include"
Run Code Online (Sandbox Code Playgroud)

编译归结为:

C:/tc/gcc_x64_4.8.1_win32_seh_rev1/mingw64/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++\bits/random.h:106:26: error:
      __int128 is not supported on this target
      { typedef unsigned __int128 type; };
                         ^
Run Code Online (Sandbox Code Playgroud)

在互联网上搜索引用了_mingw.h,但我不知道那里有什么问题:

#if (__clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 1)) && \
    !defined(__SIZEOF_INT128__) /* clang >= 3.1 has __int128 but no size macro */
#define …
Run Code Online (Sandbox Code Playgroud)

c++ gcc qmake mingw clang

12
推荐指数
1
解决办法
2万
查看次数

如何在 VS Code 中运行测试和调试 Google Test 项目?

我想运行示例测试并调试Google 测试项目。我在 Ubuntu 16.04 LTS 上使用 VS Code。

  • 我在本地克隆了该项目/home/user/Desktop/projects/cpp/googletest
  • 创建了一个名为mybuildat的新目录/home/user/Desktop/projects/cpp/mybuild
  • 根据这里的 README 说明:https : //github.com/google/googletest/tree/master/googletest我使用命令cmake -Dgtest_build_samples=ON /home/user/Desktop/projects/cpp/googletest来构建项目,这生成了一堆文件,显然构建成功。

现在,我有两个问题:

  1. 如何为项目运行示例测试?

  2. 我如何调试这些测试和项目的源代码?

c++ cmake googletest visual-studio-code

9
推荐指数
1
解决办法
1万
查看次数

IA-32中的段选择器

分段选择器什么时候出现在图片中.英特尔指南中的一行说:

"每个段描述符都有一个关联的段选择器.段选择器提供使用它的软件,其中包含GDT或LDT的索引(其相关段描述符的偏移量),全局/本地标志(确定选择器是否指向GDT或LDT)和访问权限信息."

我没理得.

是否有单独的段选择器寄存器?它是如何计算的?为什么我们需要它.

x86 assembly operating-system

8
推荐指数
2
解决办法
7503
查看次数

boost :: asio无法连接到没有WLAN的localhost

在我的计算机(Surface Pro 2)上,只有一个网络适配器,它是一个无线LAN适配器.

我参与了一个小型的C++项目,它使用boost :: asio连接到localhost并完成它的工作,一切都很好.

但今天我发现,如果我从互联网断开WLAN,这个程序不起作用.

boost :: asio的解析器会抛出异常:

tcp::resolver::query query("localhost", "10127");
tcp::resolver resolver(io_service_);
tcp::resolver::iterator iterator;

try {
    iterator = resolver.resolve(query);
}
catch (boost::system::system_error& e) {
    log(e.what());
}
Run Code Online (Sandbox Code Playgroud)

并且错误消息是:请求的名称有效,但未找到所请求类型的数据.

ping到localhost就可以了.

我感到困惑,本地网络程序是否需要互联网?本地网络程序是否需要LAN适配器?为什么ping工作正常?

c++ boost network-programming wlan boost-asio

8
推荐指数
2
解决办法
3205
查看次数

GTK3和多线程,取代已弃用的功能

我想gdk_threads_enter()/leave()在我使用线程的应用程序中替换已弃用的函数.现在的应用程序,工作完美(虽然我不确定这是否是正确的方法).

我的主循环,运行gtk_main和信号处理程序.当我收到一个开始按钮时,我开始一个在主要背景中运行的线程.如何从该线程更新GUI.我知道根据GTK3和GDK3的文档,他们说通过使用避免它

gdk_threads_add_idle() 
Run Code Online (Sandbox Code Playgroud)

要么

gdk_threads_add_timeout() 
Run Code Online (Sandbox Code Playgroud)

但是,如果我希望仅在单击"开始"时才进行更新,我该怎么做呢?有什么例子吗?我不是在问如何使用gdk_threads_add_idle(),我问的是如何在单击start后没有线程的情况下在main中运行worker函数.

单击按钮 - >在先前的线程中启动工作器功能 - >在GUI窗口中更新大量的GUI元素.

c multithreading gdk gtk3

8
推荐指数
2
解决办法
4473
查看次数