我希望这不是一个愚蠢的问题,但它总是我想知道的.Windows(Win32 API)和OS X(Cocoa)都有自己的API来处理窗口,事件和其他操作系统.对于Linux的等价物,我从来没有真正得到明确的答案.
我听说有人说GTK +,但是GTK +是跨平台的,它怎么可能是原生的呢?
#define DEFINE_STAT(Stat) \
struct FThreadSafeStaticStat<FStat_##Stat> StatPtr_##Stat;
Run Code Online (Sandbox Code Playgroud)
上面这行来自虚幻4,我知道我可以在不真实的论坛上问过它,但我认为这是一个普遍的C++问题,值得在这里提出.
我理解第一行定义了一个宏,但是我不熟悉C++中的预处理器恶作剧,所以我迷失在那里.逻辑告诉我反斜杠意味着声明继续到下一行.
FThreadSafeStaticStat看起来有点像模板,但是那里正在进行#和C++中我从未见过的语法
有人能告诉我这意味着什么吗?我知道您可能无法访问Unreal 4,但这只是我不理解的语法.
我有几个小问题.
首先,多线程和多核之间有区别吗?它们是两个完全不同的东西,还是多线程在需要时使用多个核心?
其次大多数内核都有两个线程,但在分析我的应用程序时,我注意到许多不同的线程,从线程128到线程3460.什么决定了你的计算机有多少线程?
谢谢
我花了一天时间努力让我的简单引擎在Mac上运行.我有SDL工作,现在唯一给麻烦的是opengl.该引擎使用现代opengl(基于着色器),因此需要GLEW.我已经尝试了从fink到MacPorts的所有东西来安装它,但没有任何作用.
我所获得的最大成功是从源头构建它.首先我得到一个错误说,'GL/glu.h' no such file or directory found.所以我重命名了包含,OpenGL/glu.h并解决了这个问题.但是现在我得到了这个错误,ld: unknown option: -shared我完全陷入了困境.
如果有人知道如何做,那也是静态构建.
我想在c ++中实现一些系统,这样我就可以调用一个函数并要求在X毫秒内调用另一个函数.像这样的东西:
callfunctiontimed(25, funcName);
Run Code Online (Sandbox Code Playgroud)
25是应该调用函数之前的毫秒数.
我想知道是否需要多线程,然后使用一些延迟功能?除了使用函数指针之外,这样的功能如何工作?
所以,
在将我们的项目升级到Qt5后,我们遇到了问题.该应用程序链接一个需要glew工作的库,并且在非Qt应用程序中使用库时工作正常.
现在虽然我们将库链接到一个qt应用程序并渲染成glwidget.这曾经工作,但现在它没有.我们得到了大量错误,主要是说"重新定义"某些东西.以下是一些例子:
1>c:\glew-1.9.0\include\gl\glew.h(275): error C2371: 'GLdouble' : redefinition; different basic types
1> c:\qt\qt5.0.2\5.0.2\msvc2012_64\include\qtgui\qopengl.h(71) : see declaration of 'GLdouble'
1>c:\glew-1.9.0\include\gl\glew.h(630): warning C4005: 'GL_DOUBLE' : macro redefinition
1> c:\qt\qt5.0.2\5.0.2\msvc2012_64\include\qtgui\qopengl.h(68) : see previous definition of 'GL_DOUBLE'
1>c:\glew-1.9.0\include\gl\glew.h(1655): error C2371: 'GLintptr' : redefinition; different basic types
1> c:\qt\qt5.0.2\5.0.2\msvc2012_64\include\gles2\gl2.h(38) : see declaration of 'GLintptr'
1>c:\glew-1.9.0\include\gl\glew.h(1656): error C2371: 'GLsizeiptr' : redefinition; different basic types
1> c:\qt\qt5.0.2\5.0.2\msvc2012_64\include\gles2\gl2.h(39) : see declaration of 'GLsizeiptr'
1>c:\glew-1.9.0\include\gl\glew.h(1707): warning C4005: 'GL_BLEND_EQUATION_RGB' : macro redefinition
1> c:\qt\qt5.0.2\5.0.2\msvc2012_64\include\gles2\gl2.h(96) : see previous definition of …Run Code Online (Sandbox Code Playgroud) 我一直试图找出游戏引擎如何处理资产压缩.显然,他们在构建游戏时会压缩所有资产.但是他们如何在运行时解压缩它们.我唯一能想到的就是解压缩到内存中,但这必须是内存密集型的.如果他们解压缩到硬盘上,文件夹会在游戏正在播放时填满?这听起来效率不高.
使用像clib(或任何其他)一样的库与c ++,这个运行时解压缩是如何完成的?
大卫
我知道有一个类似的问题已经被问过了,但我几个小时都无法解决这个问题.
基本上我有一个带代码的DLL和一个调用它的应用程序.一切都运行正常,但如果我把两个在我的开发环境之外,它说程序无法启动因为libgcc_s_dw2 1.dll计算机丢失了.
考虑到它不是一台开发计算机,这是公平的.因此,为了分发,我添加了编译器标志" -static-libgcc -static-libstdc++".我为dll和应用程序做了这个.
但是当我编译应用程序时,我收到错误:
"`_Unwind_Resume'的多重定义"
我认为这是由于dll和应用程序都内置了静态库,而且它是.但如果它们都没有内置静态库,程序将无法在最终用户计算机上运行.
如何在仍然没有依赖于mingw库的情况下删除此错误?我的IDE是Code :: Blocks.
大卫
编辑:这是构建链接到DLL的应用程序时的构建日志:
c:/mingw/bin/../lib/gcc/mingw32/4.6.2/libgcc_eh.a(unwind-dw2.o):(.text+0x298c): multiple definition of `_Unwind_Resume'
..\EquilibriumEngine\bin\Release\libEquilibriumEngine.dll.a(d000015.o):(.text+0x0): first defined here
collect2: ld returned 1 exit status
Process terminated with status 1 (0 minutes, 0 seconds)
2 errors, 0 warnings
Run Code Online (Sandbox Code Playgroud) 我已经在互联网上搜索了一个关于FlashDevelop可以部署到iOS的问题的明确答案.我读过的所有东西都不是很清楚,也不是很确定.我没有足够的钱来买得起Adobe Flash或Flash Builder所以如果我有一台Mac FlashDevelop是一个合适的替代品,我可以为iOS制作Flash游戏吗?
谢谢,大卫