小编Mic*_*bbé的帖子

我什么时候应该使用__forceinline而不是内联?

Visual Studio包含对__forceinline的支持.Microsoft Visual Studio 2005文档指出:

__forceinline关键字会覆盖成本/收益分析,而是依赖于程序员的判断.

这提出了一个问题:编译器的成本/收益分析何时出错?而且,我怎么知道这是错的?

在什么情况下假设我在这个问题上比我的编译器更清楚?

c++ inline-functions visual-studio

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

有用的东西放在minidumps的用户流段中

我感兴趣的是开发人员在可以嵌入minidump的用户流数据结构中添加了什么有用的东西.MSDN描述了MiniDumpWriteDump的参数:

PMINIDUMP_USER_STREAM_INFORMATION UserStreamParam

并由此描述参数:

UserStreamParam [in]指向MINIDUMP_USER_STREAM_INFORMATION结构数组的指针.如果此参数的值为NULL,则minidump文件中不包含用户定义的信息.

我正在考虑在用户流中嵌入我的程序的最后n个日志行,因为测试人员往往不会一直发送包含所有错误的格式正确的日志.

此外,我可以在该部分中放置硬件规格(内存,CPU,视频等).

人们还使用了哪些用户流段?

c++ debugging minidump

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

如果没有Xcode项目,如何在Mac OS上获得可视化调试器?

我正在将一个项目移植到OS X.我在控制台中发现GDB调试非常不足,并且确实需要一个可视化调试器.我的项目是使用Scons构建的,因此它完全回避了Xcode的IDE.在我需要启动可视化调试器并逐步执行代码之前,这是可以接受的.

除了生成和维护Xcode项目(以补充我已经支持的所有其他平台)之外,我还能做些什么才能在OS X上启动并运行可视化调试器?

这是一个C++项目.

c++ debugging xcode gdb

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

如何测试两个移动的2d定向边界框的碰撞?

OBB具有位置(x,y),速度(x,y)和方向(矩阵).给定定期更新,OBB必须相互冲突,返回被认为成功的移动部分.

我查看了GPWiki上的Polygon测试 - http://gpwiki.org/index.php/Polygon_Collision - 但它没有考虑移动对象或完全在OBB中的对象.

"实时碰撞检测"一书涵盖了第4章:边界体积中的3D OBB,但3维测试方法明显比2D更复杂.

collision-detection

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

如何在Win32上的Emacs中运行交互式命令行Python应用程序?

如果我使用Mx shell并运行交互式Python解释器,Windows上的Emacs不会返回任何IO.

当我发现Mx python-shell时,我重获希望.但是,我想运行一个具有交互式CLI的特定Python脚本,而不是运行交互式Python shell.(有关详细信息,请参阅Python的cmd模块).

有没有办法在Emacs中启动交互式的Python脚本?(stdout,stdin,stderr)

python emacs

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

如何通过Maxscript以编程方式更改3dsmax透视窗口的FOV?

我需要访问Perspective视口的FOV属性.这与与目标和免费相机相关联的FOV属性不同.

要以非编程方式访问FOV属性,请右键单击视口名称(每个视口的左上角),转到配置,在"透视用户视图"下,您可以更改FOV.

maxscript 3dsmax

4
推荐指数
1
解决办法
9763
查看次数

如何在C++中获得Mac OS X中主显示器的分辨率?

我有一个图形应用程序需要测试它在Mac OS X中启动的显示器的分辨率,以确保它不大于分辨率.这是在窗口本身初始化之前完成的.

如果有多个显示器,则需要是主显示器.这是硬件加速(OpenGL)应用程序将在全屏幕中启动的显示,通常是顶部有菜单栏的显示.

在Windows中,我可以成功使用GetSystemMetrics().我怎么能在OS X上这样做?

c++ macos graphics resolution

3
推荐指数
1
解决办法
2040
查看次数

使用 WebGL 或 OpenGL ES 2,如何在屏幕上渲染 RBO 的内容?

使用 WebGL(受限于 OpenGL ES 2 API),我成功渲染到纹理,然后在屏幕上显示该纹理。因为它是纹理,所以没有进行抗锯齿处理。如果我渲染到 RBO,然后将其显示在屏幕上,我将能够利用 AA。

我的渲染目标设置如下所示:

  1. 创建固定基地基地
  2. 绑定FBO
  3. 创建纹理(要渲染到)
  4. 创建深度缓冲区并将其绑定为 RBO
  5. 将纹理和 RBO 添加到 FBO

我的渲染更新循环如下所示:

  1. 将场景渲染到上面步骤 #2 中创建的 FBO
  2. 使用上面第 3 步中创建的纹理渲染屏幕对齐的四边形

使用桌面 OpenGL,我会调用glBlitFramebuffer()而不是绘制屏幕对齐的四边形。

如何使用抗锯齿渲染场景?我需要用 RBO 替换纹理吗?如果是这样,我应该使用什么调用来绑定 RBO 以绘制屏幕对齐的四边形?

webgl opengl-es-2.0

3
推荐指数
1
解决办法
2229
查看次数

glTexImage2D上的OpenGL 3.2 GL_INVALID_ENUM(GL_PROXY_TEXTURE_2D ...)

我正在将引擎从OpenGL 1.1转换为OpenGL 3.2.抛出一个GL_INVALID_ENUM,但我无法弄清楚原因.

我在glTexImage2D()之前调用glGetError()来清除它.当我完成后,glGetError()返回GL_INVALID_ENUM.

      glActiveTexture( GL_TEXTURE0 );
      glTexImage2D( GL_PROXY_TEXTURE_2D,   // target
                    0,                     // level
                    4,                     // internalformat
                    32, 32,                // width & height
                    0,                     // border
                    GL_RGBA,               // format
                    GL_UNSIGNED_BYTE,      // type
                    NULL );                // pixels
Run Code Online (Sandbox Code Playgroud)

opengl

3
推荐指数
1
解决办法
1336
查看次数

在arm7上启用浮点异常时未更新fpscr寄存器,未生成SIGFPE

fpscr寄存器未更新,并且未生成SIGFPE.这是在NVidia Shield平板电脑和第一代Nexus 7上测试的.

feenableexcept(FE_DIVBYZERO | FE_INVALID | FE_OVERFLOW);
Run Code Online (Sandbox Code Playgroud)

实现调用代码,最终执行此程序集:

  asm _volatile__("vmsr fpscr,%0" : :"ri" (fpscr));
  ; disassembly follows
  ldr r3, [r11, #-8] 
  vmsr fpscr, r3
Run Code Online (Sandbox Code Playgroud)

vmsr fpscr没有更新.当它应该更新为0x20000710时,它仍然是0x20000010.

-mfloat-abi=soft和测试-mfloat-abi=softfp.

我能得出什么结论?

debugging floating-point arm android-ndk

3
推荐指数
1
解决办法
183
查看次数

什么是发现为什么在我的C++应用程序中创建线程以及它们的作用的最佳方法?

我正在审核在Windows上运行的C++应用程序,针对多线程调试DLL进行编译.它有很多可以产生线程的第三方依赖项.我需要跟踪每个线程为什么存在以及分配多少堆栈空间.

什么是追溯到线程创建开始的好方法,以便我可以看到它产生的位置?

更新:我应该指出我拥有Microsoft依赖项之外的整个应用程序的源代码.但是,很多线程都有独立存在于操作系统附带的库中的callstacks,如ntdll.dll和kernel32.dll.

c++ windows debugging multithreading

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

如何在OS X上使用Cocoa或Carbon获取单个窗口的屏幕抓图?

我需要能够识别用户屏幕上的单个窗口并对其进行屏幕捕获.屏幕数据将存储在内存中,而不是写入磁盘.

这已经通过命令行工具/ usr/sbin/screencapture或通过Grab实用程序得到支持(尽管它们的功能不够广泛,无法证明我将它们作为子进程启动).

参考/提示

  • nm/usr/sbin/screencapture返回私有Cocoa接口,包括_CGSGetSharedWindow,它们似乎是这样做的.
  • 第三方应用程序Snapzpro执行此操作(但不提供源代码)

macos cocoa screenshot macos-carbon

0
推荐指数
1
解决办法
1256
查看次数

为什么在使用g ++而不是gcc进行编译时,在stdio.h中定义了_LARGEFILE_SOURCE?

如果使用gcc lfs.c -o lfs编译以下代码,则不会输出任何内容.但是,如果使用g ++ lfs.c -o lfs编译它,则会打印"由stdio.h!"定义的"_LARGEFILE_SOURCE".

#ifdef _LARGEFILE_SOURCE
int largefile_defined_at_start = 1;
#else
int largefile_defined_at_start = 0;
#endif

// This defines _LARGEFILE_SOURCE, but only in C++!
#include <stdio.h>

int main(void) {
#ifdef _LARGEFILE_SOURCE
  if (!largefile_defined_at_start)
    printf("_LARGEFILE_SOURCE defined by stdio.h!");
#endif
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

在任何一种情况下,编译器都没有定义_LARGEFILE_SOURCE:

gcc -dM -E - < /dev/null |grep _LARGEFILE_SOURCE |wc -l
0
g++ -dM -E - < /dev/null |grep _LARGEFILE_SOURCE |wc -l
0
Run Code Online (Sandbox Code Playgroud)

为什么stdio.h在通过g ++前端调用GCC时定义_LARGEFILE_SOURCE?

c c++ gcc large-file-support large-files

0
推荐指数
1
解决办法
299
查看次数