小编Dab*_*ler的帖子

是什么导致'SIGILL'信号?

我正在使用NDK和GCC将一些C++代码移植到Android.代码基本上运行.有一次,在Eclipse中调试时,调用

__CODE__

导致此错误:

__CODE__

那是什么意思?编译器是否因某种原因生成了非法代码?我在构造函数中有一个断点(它什么都不做),而且它没有被击中.我已经做了完整的重建.

我可能做错什么导致这个问题?

c++ android porting android-ndk

83
推荐指数
5
解决办法
10万
查看次数

CLion在哪里存储可执行文件?

我在Ubuntu 14.04上安装了CLion.我使用CMakeLists.txt构建了我的第一个项目:

源文件:

#include <iostream>
using namespace std;

int main() {
  cout << "Hello, World!" << endl;
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

的CMakeLists.txt:

cmake_minimum_required(VERSION 2.8.4)
project(sh)

set(SOURCE_FILES main.cpp)
add_executable(sh ${SOURCE_FILES})
Run Code Online (Sandbox Code Playgroud)

我的源文件位于/ home/user/Desktop/sh中.但是在构建之后,我在这个文件夹中看不到任何可执行文件.它在哪里?

c++ jetbrains-ide cmake ubuntu-14.04 clion

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

为什么在DOM更改后IWebBrowser2不刷新?

A有一个Web浏览器嵌入在我的Win32 C++应用程序的对话框中(没有MFC,ATL等),我最初从包含一些HTML代码的字符串设置文档的内容.此HTML正确呈现.当"文档完成"事件发生时,我操纵DOM,例如通过将文本节点附加到BODY元素.

问题是虽然调用IHTMLElement::get_outerHTMLBODY元素的界面表明文本节点存在,但浏览器内容在对话框中显示不变.

我试过调用两个IWebBrowser2::Refresh::InvalidateRect/ ::UpdateWindow,但都没有帮助.

有任何想法吗?如果需要,我可以发布部分代码.

还有,有谁知道

  • 原则上,在修改DOM之后是否需要以某种方式触发刷新(或者它应该是自动的)
  • IWebBrowser2::RefreshHTML文档是从字符串加载而不是URL加载时是否有意义

仍希望得到这个答案......任何人?

c++ dom mshtml iwebbrowser2

11
推荐指数
1
解决办法
684
查看次数

BOOST_BINARY宏如何解析空格?

请考虑以下代码.

int value1 = BOOST_BINARY( 100 111000 01 1 110 );
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下BOOST_BINARY如何计算int值吗?

c++ macros boost

10
推荐指数
2
解决办法
1137
查看次数

在*device*(不是模拟器)上调试Android中的本机代码

我按照此描述调试Android应用程序中的本机代码,它在模拟器上调试时有效.

当我想在实际设备上进行调试时,在我切换到C/C++调试配置时,Eclipse会报告"远程通信错误:错误的文件描述符".显然到达GdbServer有一个问题(我猜).我想所有缺少的是对调试配置的一个小调整.不幸的是,我还不太了解整个设置是如何工作的,所以我无法确定/解决问题.真的很感激任何帮助.

eclipse android gdb android-ndk gdbserver

8
推荐指数
1
解决办法
7081
查看次数

科特林的平等

我正在学习Kotlin,具有C++和Java背景.我期待以下打印true,而不是false.我知道==那张地图equals.是否默认实现equals比不上每个成员,即firstNamelastName?如果是这样,它不会看到字符串值相等(因为再次==映射equal)?显然,有一些与平等和身份相关的东西,我还没有在Kotlin中找到.

class MyPerson(val firstName: String, val lastName: String)

fun main(args: Array<String>) {
   println(MyPerson("Charlie", "Parker") == MyPerson("Charlie", "Parker"))
}
Run Code Online (Sandbox Code Playgroud)

java equality operator-overloading operators kotlin

8
推荐指数
3
解决办法
5043
查看次数

重用Web浏览器控件

我有一个纯粹的Win32应用程序(没有MFC等),我想在窗口中添加一个Web浏览器控件.我知道COM的基础知识,可以使用浏览器创建COM对象

 hr = CoCreateInstance(
    CLSID_WebBrowser,
    NULL,
    CLSCTX_INPROC,
    IID_IWebBrowser2,
    (void**) &pWebBrowser);
Run Code Online (Sandbox Code Playgroud)

但是,显然需要调用SetClientSite,传递IOleClientSite*.我如何获得这样的界面?这个例子实现了自己的浏览器类,它通过派生和实现它来提供接口(这里).我尝试沿着那条路走,但为了实例化浏览器类,我必须注册它(不是吗?).这看起来非常复杂 - 我只想使用现有的COM对象,而不是实现和注册我自己的COM对象.我错过了什么?

假设我将我自己的ClientSite类作为我的应用程序的一部分实现,是否可以不注册它,只是通过调用实例化它new ClientSite(然后将接口提取为使用QueryInterface)?这会起作用,还是必须打电话CoCreateInstance

c++ windows com winapi webbrowser-control

5
推荐指数
1
解决办法
5151
查看次数

从SubVersion/SmartSVN中删除文件

我使用SmartSVN作为Subversion的前端.有时,存储库控制下的源文件变得多余 - 我根本不再需要它.在这种情况下,我想删除它,因为更新工作副本不再从存储库中提取文件.但我仍然希望文件的历史记录(即先前提交的修订版)保留在存储库中.

如果我没记错的话,SmartSVN的Remove命令会删除文件的历史记录(我显然对此进行验证犹豫不决).如果我弄错了,请纠正我.否则:我怎样才能达到预期的效果?

编辑:使用虚拟文件,确认Remove完全从SVN控件中删除文件,并且其历史记录不再可见.所以问题是真的.

svn smartsvn

5
推荐指数
1
解决办法
4390
查看次数

Windows工具栏 - 控制按钮大小和填充

我试图了解Windows工具栏的行为 - 特别是以下值如何交互:

  • 使用的位图图像的大小
  • 工具栏按钮的有效大小
  • 图像和按钮边缘之间的填充
  • 工具栏的高度

按钮显示的文本与我的情况无关.

我真正想要做的是为用户提供一个选项,这样他就可以从几个工具栏按钮大小中选择(显示16x16,32x32或48x48像素的位图),并在选项值更改后相应地重新显示工具栏.这是通过销毁工具栏的图像列表并使用适当的位图重建它们来实现的.我目前遇到的问题是,当从大小16切换到48并返回到大小16时,工具栏看起来与以前略有不同.

这是应用程序启动时工具栏的样子(正确):

在切换工具栏大小之前

一旦我切换到48号并再次返回,它看起来像这样(错误):

切换到更大的尺寸后返回

所有按钮都比以前更高,每个下拉按钮在其位图及其下拉箭头周围都有额外的空间.

(出于测试目的,工具栏已经足够高,可以容纳所有按钮大小,而不需要增加高度.这是为了排除按钮大小的变化源于可能的工具栏调整大小的必要性,需要暂时切换到大小48.)

看起来好像在按钮位图和按钮边缘之间呈现了额外的填充 - 好像用较大的位图/按钮重建工具栏会导致Windows内部增加填充(这是有意义的),但是当我随后重建时不会减少它具有较小位图/按钮的工具栏.但是,发送TB_GETPADDING始终返回0x00060007,这表示16x16位图的标准(正确)填充已到位.

为了通过自己设置填充来解决问题,我在所有非分隔符按钮上设置TBSTYLE_AUTOSIZE样式(这是为了应用填充所必需的).使用这种样式,甚至没有调用TB_SETPADDING,切换到48后再返回,工具栏如下所示:

切换到更大的尺寸并返回后,使用TBSTYLE_AUTOSIZE

在这种情况下,按钮高度也是错误的.

问题是:在重建图像列表后,导致按钮显示的原因什么?

一些备注:

  • 在构建工具栏时,我调用TB_SETBITMAPSIZE,但是既没有TB_SETBUTTONSIZE也没有TB_SETPADDING,因为位图大小是我所拥有的,并且我假设按钮大小将从中正确导出.
  • 我知道我可以简单地从头开始构建整个工具栏窗口(不仅仅是图像列表),但是我想避免这种情况,所以我可以继续使用相同的工具栏窗口句柄.
  • 我知道CCS_NORESIZE工具栏样式(它当前已设置)和TB_AUTOSIZE消息,但使用它们进行的实验并没有带来任何见解.

c++ windows winapi bitmap padding

5
推荐指数
1
解决办法
3294
查看次数

C链接器在哪种情况下会消除未使用的易失符号?

我正在使用一个非常具体的工具链(ADI公司的SHARC DSP处理器),我希望能更好地理解我的编译器/链接器.

我有一个易变的全局变量:

 volatile long foo;
Run Code Online (Sandbox Code Playgroud)

这个变量没有被使用,也没有在我的代码中引用,但是我希望将它保存在我的最终可执行文件中(不要问我为什么,这个可悲的事实很难过).

我通常将我的项目与-e选项链接起来.它告诉链接器从可执行文件中删除死代码.我最初认为没有编译器敢于删除任何全局变量,特别是如果这些符号被声明为volatile.不幸的是.

然后我找到了一个非常具体的编译指示#pragma retain_name,告诉链接器保留符号,即使它从未使用过.

我想知道在某些ISO/POSIX标准中是否可以找到这种情况.我总是认为编译器或链接器都不会对易失性符号做出任何假设.因此,没有编译器会尝试从最终的可执行文件中删除死的volatile变量或函数.

我错了吗?

c linker

5
推荐指数
1
解决办法
641
查看次数