小编Sum*_*uma的帖子

将3D数学转换为SSE或其他SIMD需要多少加速?

我在我的应用程序中广泛使用3D数学.通过将矢量/矩阵库转换为SSE,AltiVec或类似的SIMD代码,我可以实现多少加速?

optimization x86 sse native simd

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

在线游戏作弊:是否有可能阻止一个Win32进程检查/操纵另一个内存?

我玩在线游戏"魔兽世界",它受到自动机器人的困扰,这些机器人检查游戏分配的内存,以便读取游戏/玩家/世界状态信息,用于机械地玩游戏.他们有时也直接写入游戏的记忆本身,但据我所知,更复杂的记忆本身并没有.

该游戏的供应商暴雪娱乐有一个名为Warden的独立应用程序,它应该检测和禁用这样的黑客和作弊,但它并不能捕捉到一切.

是否有可能创建一个Windows应用程序,在这个应用程序中,您是唯一可以读取您已读入内存的内容的应用程序?

在数百万台机器上运行的大型C++应用程序上实现是否务实?

c++ security winapi

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

确定哪个文件包含某些特定的头文件

有时使用复杂的头结构会出现一些标题,但很难分辨出来.

是否有一些工具(依赖性查看器?)或方法如何找到"包含堆栈"(哪个源/哪个标题/哪个标题/ ...)包含一个特定的头文件?

如果多次包含头文件,找到第一个包含就足够了,找到所有包含是一个值得欢迎的奖励.

c c++ visual-studio-2005 header include

10
推荐指数
3
解决办法
3063
查看次数

scala中未来的onComplete和foreach有什么区别?

当我们在Scala中使用Future时,我想知道onComplete和foreach之间的区别.

f onComplete (_ => doSomething(_))

f foreach (_ => doSomething(_))

  1. 上面的代码行会导致相同的结果吗?

  2. 如果我想在完成之后再做一些未来的事情.我该怎么办?我应该像这样使用isCompleted:

    if(f.isCompleted) f onComplete (_ => doSomething(_))

非常感谢你们

concurrency foreach scala future

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

卸载DLL时内存泄漏是否会导致主机进程泄漏?

考虑这种情况:

dll = LoadDLL()
dll->do()

...
void do() {
    char *a = malloc(1024);
}
...

UnloadDLL(dll);
Run Code Online (Sandbox Code Playgroud)

此时,在调用malloc()时分配的1k是否可以再次用于主机进程?DLL静态链接到CRT.

c++ dll winapi memory-management crt

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

在恰当的时间点将调试器附加到VC++中的过程的最佳方法是什么?

在调试时,有时您需要附加已经运行的进程,而不是仅在调试器中启动应用程序.

我自己常常放入Sleep()或MessageBox调用,以便更容易连接调试器.我担心其中一些可能最终会被提交给源代码控制.

在延迟足够时间的同时避免这种情况的最佳方法是什么,以便可以将调试器连接到正在运行的进程?

#ifdef _DEBUG一种方式保护睡眠或消息框,但我想知道是否有更好的方法.

睡眠时,您还有一个问题,即您可能无法及时附着.使用MessageBox,您可能遇到远程调试或调试没有可见GUI的进程的问题(示例在Vista上作为服务运行)

c++ debugging debugbreak visual-c++

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

声明但不定义内部结构/类 - 合法C++与否?

以下代码是否合法C++?

class Foo
{
  class Bar;

  void HaveADrink(Bar &bar);
  void PayForDrinks(Bar &bar);

  public:
  void VisitABar(int drinks);
};

class Foo::Bar
{
  public:
  int countDrinks;
};

void Foo::HaveADrink(Bar &bar)
{
  bar.countDrinks++;
}
void Foo::PayForDrinks(Bar &bar)
{
  bar.countDrinks = 0;
}
void Foo::VisitABar(int drinks)
{
  Bar bar;
  for (int i=0; i<drinks; i++) HaveADrink(bar);
  PayForDrinks(bar);
}
Run Code Online (Sandbox Code Playgroud)

Visual C++和GCC都接受它,但是代码对我来说似乎有些奇怪,我不愿意让它被未来的编译器拒绝.

尽管如此,这种模式似乎对减少编译时依赖性很有用 - 我经常使用它来声明用于传递一些"上下文"(一堆变量)的结构,这些结构在一些函数之间共享,这些函数都位于同一个cpp中文件,这样我就不必将"上下文"定义引入公共接口.

c++ definition inner-classes forward-declaration

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

由于LARGEADDRESSAWARE,检测指针算术

我想将我的应用程序切换到LARGEADDRESSAWARE.需要注意的一个问题是指针算法,因为指针差异不能再表示为带符号32b.

有没有办法如何在大型C++项目中自动查找指针减法的所有实例?

如果没有,是否有一些"尽力而为"的手动或半自动方法如何实现这一目标?

c++ pointers static-analysis visual-studio

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

如果在编译时知道边缘条件,我怎么能省略一个调用呢?

我有以下情况:有一大堆模板std::vector会调用memmove()移动数组的部分.有时他们会想要"移动"长度为零的部分 - 例如,如果删除了数组尾部(例如std::vector::erase()),他们将希望移动数组的其余部分,这些部分的长度为零,并且零将在编译时(我看到反汇编 - 编译器知道)但编译器仍会发出memmove()调用.

所以基本上我可以有一个包装器:

inline void callMemmove( void* dest, const void* source, size_t count )
{
   if( count > 0 ) {
       memmove( dest, source, count );
   }
}
Run Code Online (Sandbox Code Playgroud)

但这会引入一个额外的运行时检查,count在编译时不知道我不想要的情况.

是否有可能使用__assume提示向编译器指示如果它确定count为零则应该消除memmove()

c++ optimization compiler-optimization visual-c++

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

为什么scala.language.implicitConversions不是最后一次导入时发出警告?

在我的Scala代码中,我有一些隐式转换,我有必要的导入存在:

import scala.language.implicitConversions
Run Code Online (Sandbox Code Playgroud)

但是,有时当在此之后再进行另一次导入时,我会收到警告,好像导入根本不存在:

警告:(112,18)隐式转换方法pair2Dimension应该通过使隐式值scala.language.implicitConversions可见来启用.

build.sbt:

name := "ImplicitSBT"

version := "1.0"

scalaVersion := "2.11.5"

scalacOptions ++= Seq("-deprecation","-feature")

libraryDependencies += "org.scala-lang.modules" %% "scala-swing" % "1.0.1"
Run Code Online (Sandbox Code Playgroud)

Main.scala:

import scala.language.implicitConversions
import scala.swing.{Action, _}

object Main extends App {

  implicit def pair2Dimension(pair: (Int, Int)): Dimension = new Dimension(pair._1, pair._2)

  val dim : Dimension = (0,0)

  println(dim)


}
Run Code Online (Sandbox Code Playgroud)

为什么会这样?如何import scala.swing.{Action, _}隐藏implicitConversions导入?

import warnings scala implicit-conversion

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