小编Luc*_*lon的帖子

什么是硬件光标,它是如何工作的?

有没有人可以解释硬件光标如何正常工作?它与我在屏幕上绘制的图形有什么关系?我正在使用OpenGL绘制,硬件光标如何与OpenGL图形相关?

编辑:对于那些可能对此感兴趣的人,我刚刚实现了用硬件显示光标所需的内容.实现在内核中并且使用它简单的ioctl就足够了.完美的工作.

opengl graphics cursor hardware-acceleration

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

在C++中的其他一些指令之后调用基类的构造函数

据我所知,不可能调用基类的构造函数.我知道的唯一方法是:

MyClass::MyClass(/* args */) : Base(/* args */)
{
   // ...
}
Run Code Online (Sandbox Code Playgroud)

但这会在开始时调用构造函数.有没有办法在构造函数中的其他地方调用它?像这样的东西:

MyClass::MyClass(/* args */)
{
   // ... instructions
   Base::Base(/* args */);
   // ... other_instructions
}
Run Code Online (Sandbox Code Playgroud)

根据这个调用超类构造函数的规则是什么?问题我明白没有办法,但我在这里阅读,我猜这是可能的,但如果我尝试我得到:

error: invalid use of 'class Base'.
Run Code Online (Sandbox Code Playgroud)

难道我做错了什么?有可能以某种方式做到这一点还是有其他可能的解决方案来满足这种需求?

谢谢!

编辑:我理解我忘记了一个关键点:基类是框架的一部分,因此如果可能的话,最好不要修改它.

c++ oop class

19
推荐指数
3
解决办法
9080
查看次数

如何使用删除按钮在UITableView中显示重新排序控件

我阅读了有关如何在UITableView中管理行的删除和重新排序的文档.我创建了编辑按钮,我可以删除行.我希望用户能够重新排序行.这似乎很简单,但我无法理解如何告诉细胞他们可以被移动.

要告诉行可以删除它我使用editingStyleForRowAtIndexPath,但是如何告诉单元格它也可以被移动以及我在哪里设置showsReorderControl?我试图放在cellForRowAtIndexPath中,但没有显示任何内容.

谢谢!

iphone uitableview ios4

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

如何在Linux下使用向上/向下键启用Android adb shell历史记录?

我最近升级到新的Android SDK,我注意到一些非常烦人的事情.似乎不可能在shell中使用命令历史记录.你注意到了吗?Android shell对我来说似乎很可怕,但至少在最后一个SDK中,我有命令历史记录.现在,似乎按下向上/向下箭头,导致在提示符上写入一些代码(类似^ [[A,^ [[B等...).我试着读一下,但我发现很少有人问这个零答案.知道为什么会这样,以及如何解决这个问题?

shell android adb android-sdk-2.3

10
推荐指数
1
解决办法
4164
查看次数

如何将单字节const char*转换为UTF-8编码

我有一个函数,它要求我传递一个由char*指向的UTF-8字符串,并且我有一个指向单字节字符串的char指针.如何在C++中将字符串转换为UTF-8编码?我可以使用任何代码来执行此操作吗?谢谢!

c++ utf-8 character-encoding

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

尝试使用dlopen加载库时未定义的符号

我正在尝试加载一个共享库(插件)我在Linux ARM平台下使用dlopen提供了(封闭源代码).我正在尝试加载这种方式:

void* handle = dlopen(<library_path>/<library_name>, RTLD_NOW);
Run Code Online (Sandbox Code Playgroud)

结果是此消息失败:

Failed to load <library_path>/<library_name>: undefined symbol: <symbol_name>.
Run Code Online (Sandbox Code Playgroud)

我试图用nm查看库内部,但似乎lib被剥离,找不到符号.我也试过使用readelf -s,事实上,我得到了这个结果:

12663: 00000000     0 NOTYPE  GLOBAL DEFAULT  UND <symbol_name>
Run Code Online (Sandbox Code Playgroud)

通过阅读,我得到readelf -s返回所有符号,包括在它引用的库中定义的那些符号.

这个问题的答案对我来说并不完全清楚:这是一个应该在库中的符号,它不存在,因为它是以错误的方式编译的,或者这是一个我应该在其他地方找到的符号?readelf -d的输出似乎表明我提供了所有需要的共享库.可能这个错误与我正在编译可执行文件的方式中的错误有关,或者这与加载程序无关?

另外,我读到了每列的含义,但这些值非常奇怪.你如何解释这个符号描述?为什么地址为0?为什么键入NOTYPE?

c++ linker compilation shared-libraries dlopen

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

只有gdb在ARM上报告的回溯中的问号

我正在尝试使用ARM上的gdbserver调试软件以获得崩溃的回溯.不幸的是我只得到问号.无处不在,我读到这个问题只是缺少符号,但符号并没有从我的库中删除.

如果我尝试使用file命令在客户端加载符号,我得到:

reading symbols from <path>/libQtWebKit.so.4.7.2...(no debugging symbols found)...done.
Run Code Online (Sandbox Code Playgroud)

然后,当崩溃发生时:

Program received signal SIGSEGV, Segmentation fault.
0x00000000 in ?? ()
(gdb) bt
#0  0x00000000 in ?? ()
#1  0x4bf38b88 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
Run Code Online (Sandbox Code Playgroud)

我的库是在发布时编译的,但符号实际上是存在的.有了nm,我可以找到它们.为什么我只收到问号?这只是因为库是用优化编译的吗?是否可以在发布模式下使用库进行调试?

c++ debugging gdb gdbserver

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

Yocto 安装后不需要的文件如何删除?

我正在尝试为 Yocto 中的自定义库创建一个配方。我目前收到此错误:

ERROR: ... do_package: QA Issue: pot-plugin: Files/directories were installed but not shipped in any package:
  /usr/lib/qt5/plugins/mediaservice/a.so.1.0
  /usr/lib/qt5/plugins/mediaservice/a.so.1
Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.
Run Code Online (Sandbox Code Playgroud)

我已经设置了这些,FILES_${PN}但在这种情况下,Yocto 抱怨那些符号链接太多,并且不属于该包。实际上,正确的做法是将它们也从 sysroot 本身中删除。因此,我尝试定义该do_install步骤,但在创建包之前找不到如何删除这些步骤。我做了类似的事情:

do_install {
   rm <some_path>/a.so.1.0
   rm <some_path>/a.so.1
}
Run Code Online (Sandbox Code Playgroud)

但我找不到正确的使用路径。有人可以解释这是否是解决问题的正确方法,如果是,我应该使用什么路径在安装这些文件之后和创建包之前删除这些文件?谢谢!

openembedded bitbake yocto yocto-recipe

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

如何在Posix系统中获得总可用磁盘空间?

我正在编写一个跨平台的应用程序,我需要总的可用磁盘空间.对于posix系统(Linux和Macos),我使用的是statvfs.我创建了这个C++方法:

long OSSpecificPosix::getFreeDiskSpace(const char* absoluteFilePath) {
   struct statvfs buf;

   if (!statvfs(absoluteFilePath, &buf)) {
      unsigned long blksize, blocks, freeblks, disk_size, used, free;
      blksize = buf.f_bsize;
      blocks = buf.f_blocks;
      freeblks = buf.f_bfree;

      disk_size = blocks*blksize;
      free = freeblks*blksize;
      used = disk_size - free;

      return free;
   }
   else {
      return -1;
   }
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,我得到了一些我无法理解的奇怪价值观.例如:f_blocks = 73242188 f_bsize = 1048576 f_bfree = 50393643 ...

这些值是以位,字节还是其他形式存在的?我在这里读的stackoverflow那些应该是字节,但后来我得到的总字节数是:f_bsize*f_bfree = 1048576*50393643但这意味着49212.542GB ......太多了......

我是否对代码或其他任何内容做错了?谢谢!

c++ unix linux macos posix

6
推荐指数
2
解决办法
9027
查看次数

如何使用ALSA混合多个PCM流

我有两种不同的PCM样本流.有可能以某种方式混合它们并在同一输出设备上与ALSA一起玩吗?

我读过可能有可能使用调音台,但由于缺乏文档,我发现很难理解.任何人都可以提供更多关于如何实施这些信息的信息(如果确实如此)?

谢谢!

alsa playback

6
推荐指数
1
解决办法
4020
查看次数