小编Kyl*_*yle的帖子

使用GCC编译没有RTTI的时间typeid

无论如何,在typeid禁用RTTI的情况下从GCC 获取编译时信息?在Visual Studio下const char* typeName = typeid(int).name();,即使禁用了RTTI ,一个简单的命令也会适当地返回"int".不幸的是,海湾合作委员会不能这样做.当我尝试在typeid没有RTTI的情况下打电话时,我的程序崩溃了.我知道禁用RTTI不是标准的一部分,但无论如何我是否可以强制GCC进行已知类型的编译时间分辨率?

出于性能原因,RTTI被禁用.我不需要运行时RTTI.

编辑:

这就是我最终的目标:

template<typename T> const char* TypeName(void);
template<typename T> const char* TypeName(T type) { return TypeName<T>(); }

#define REFLECTION_REGISTER_TYPE(type) \
    template <> const char* TypeName<type>(void) { return #type; } 
Run Code Online (Sandbox Code Playgroud)

它需要REFLECTION_REGISTER_TYPE为每个需要反射信息的类型调用.但只要它被称为每个必需的类型,调用TypeName<int>工作完美.我还添加了函数TypeName(T type),这意味着你可以做这样的事情:int x = 0; printf(TypeName(x));它将打印出"int".GCC应该能够像VC++一样在编译时实现这一点.

c++ reflection

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

C语言中__uuidof的替代

我正在使用一个使用DirectX的C项目,但我遇到了一个问题.某些DX调用需要一个IID对象,通常用__uuidof.这需要做的一件事是创建一个RenderTargetView.DirectX示例/教程执行此操作:

ID3D11Texture2D* pBackBuffer = NULL;
hr = g_pSwapChain->GetBuffer( 0, __uuidof( ID3D11Texture2D ), ( LPVOID* )&pBackBuffer );
Run Code Online (Sandbox Code Playgroud)

当我尝试调用__uuidof我的C代码时,我收到编译器错误:Error 19 error C4233: nonstandard extension used : '__uuidof' keyword only supported in C++, not C.DirectX有一个C接口,所以我想必须有办法做到这一点,但我不知道它会是什么.谁知道?

c directx uuid guid visual-studio

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

在 Cocoa 中驱动 Main Loop 的正确方法

我正在编写一个当前在 Windows 和 Mac OS X 中运行的游戏。我的主游戏循环如下所示:

while(running)
{
    ProcessOSMessages(); // Using Peek/Translate message in Win32
                         // and nextEventMatchingMask in Cocoa
    GameUpdate();
    GameRender();
}
Run Code Online (Sandbox Code Playgroud)

这显然简化了一点,但这就是它的要点。在我可以完全控制应用程序的 Windows 中,它运行良好。不幸的是,Apple 在 Cocoa 应用程序中有自己的处理方式。

当我第一次尝试在 Cocoa 中实现我的主循环时,我不知道把它放在哪里,所以我NSApplication根据这篇文章创建了我自己。我GameFrame()在我的run功能中投入了我的权利,一切正常。

但是,我觉得这不是“正确”的方法。我想在 Apple 的生态系统中很好地发挥作用,而不是试图破解一个有效的解决方案。

这篇来自苹果的文章描述了使用 的旧方法NSTimer,以及使用CVDisplayLink. 我已经连接了这个CVDisplayLink版本,但它只是感觉......奇怪。我不喜欢我的游戏由显示器驱动而不是相反的想法。

我只有两个选项可以使用 aCVDisplayLink或覆盖我自己的NSApplication吗?这些解决方案中的任何一个都感觉不太对。

architecture macos cocoa

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

多线程单元测试

任何人都可以为多重应用程序推荐任何有关单元测试的好书.任何人都可以推荐可用于多线程测试的应用程序或实用程序,类似于java工具ConTest(我没有使用但朋友推荐)?

任何特别与多线程应用程序的C#单元测试相关的帮助都特别受欢迎.

谢谢.鲍勃.

c# multithreading unit-testing

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