我使用CMake为MinGW编译了SFML。运行“mingw32-makeinstall”后,所有内容都已构建并安装,没有错误。但是在运行示例时-pong.exe、sound.exe、sound-capture.exe和voip.exe都依赖于openal32.dll。我在配置CMake时指定了SFML_USE_STATIC_LIBS=true,并且示例可执行文件的所有其他依赖项仅基于nativeWindowsdll。谁能解释为什么它动态链接到openal32(但没有别的)?编辑:我刚刚遇到这个线程http://en.sfml-dev.org/forums/index.php?topi
我想控制声源音量随距离淡出的方式,我该怎么做?编辑:我还想知道如何相应地缩放声音坐标系:我不想听到离声源太远的声音:现在我必须更改我的渲染代码缩放坐标以使其按我的意愿工作。Edit2:虽然,一种解决方案是在发送之前乘以我的坐标...但是还有更优雅的方法吗? 最佳答案 这将是alDistanceModel(AL_LINEAR_DISTANCE)或更好的alDistanceModel(AL_LINEAR_DISTANCE_CLAMPED),它将完全关闭远距离源。阅读第3.4.3和3.4.4章here.您还必须为每个源(alSourcef
我正在开发一个测试工具来从PC并行端口生成波形。该工具旨在生成具有ms计时精度的任何波形模式,因此我使用Lua脚本定义波形模式,当用户单击[Start]按钮时,GUI启动新的QThread以运行脚本。Lua的以下三个函数作为C++全局函数实现:pwrite:向并口写入数据。msleep:WAITING一定毫秒(使用nanosleep()实现)print:覆盖Lua默认打印函数,这个函数将消息附加到一个QTextEdit小部件。调用pwrite时,写入的数据保存在全局变量中,然后以20ms的间隔更新GUI,更新GUI上的并口数据。(这个20ms的间隔刷新不是一个好的设计,但是我还没有弄清
我有一个可能微不足道的问题,但我无法理解。我写了简单的代码:fstreamfile;file.open("data",ios::in);if(!file.good()){file.close();file.open("data",ios::out);if(!file.good())cout在新的VS8C++Express项目中。当我运行它并且“数据”不存在时,它会创建文件,但也会返回“不好”(第二个),因此输出不会写入文件。现在有趣的事情来了。如果我在VS10C++Express和Code::Blocks12中编译相同的代码,它工作正常。为什么会这样?@编辑我的friend也在他的PC
我正在尝试使用ALSA库在SoC上实现音频捕获。我有一个预编译的libasound.so.2.0.0和一个asoundlib.h以及其他header。现在我有intreturnCode;snd_pcm_t*pcm_Handle;char*pcm_device_name="hw:0,0";returnCode=snd_pcm_open(&pcm_Handle,pcm_device_name,SND_PCM_STREAM_CAPTURE,0);返回snd_strerror(returnCode)的Nosuchfileordirectory这是否表示捕获设备未正确安装(例如驱动程序或其他东西
我在我的(C++)游戏中使用Lua作为脚本语言。在一次调用中(从lua到c++)我检查堆栈顶部的类型:if(lua_type(L,(0))==LUA_TSTRING)但有时lua_type(L,(0))返回9。我似乎找不到对此的任何引用(返回值应介于-1和8之间或LUA_TNONE、LUA_TNIL、...LUA_TTHREAD)。发生了什么事? 最佳答案 栈顶索引为-1,而不是0。0永远不能用作访问堆栈的索引:(Notethat0isneveranacceptableindex.)在§4.3–ValidandAcceptableI
我曾经想过我可以在lua中重写一个类方法,这样当我在C++中调用该函数时,它就会执行在lua中重写的操作。我的意思是,像这样:C++类classPerson{public:Person();//ctrvirtualvoidshout();//Meanttobeoverriden};假设我将该类绑定(bind)到lua,以便在lua中,我可以使用该对象:--Luacodep=Person:new()p:shout()我想要实现的是这样的:Lua文件--luafile.luap=Person:new()--instantiate--overrideshout()p.shout=functi
我一直在加深在C++中嵌入Lua脚本的经验,我可以在这里用一只手。考虑以下两个类://Person.hpp#pragmaonce#includeclassPerson{private:std::stringp_Name;intp_Age;public:Person(conststd::string&strName,constint&intAge):p_Name(strName),p_Age(intAge){}Person():p_Name(""),p_Age(0){}std::stringgetName()const{returnp_Name;}intgetAge()const{ret
我有一个C++项目,其中1个类的1个方法经常更改。所以我想将该代码从C++转移到Lua。请注意,我是Lua的新手。整个任务:绑定(bind)一些类方法到Lua状态机;将对类对象的引用传递给用Lua编写的函数;在Lua函数中对传递的C++对象进行操作。我已经找到了如何使用Lunar迈出第一步,但无法应对第二步和第三步。我不能使用SWIG和boost。 最佳答案 //Thishasalargenumberofsteps,butI'mgonnapostthemall.ThisisallusingnativeLua5andtheluaCAP
我已经在C中创建了一个Lua表,但我不确定如何将该表压入栈顶以便将其传递给Lua函数。有人知道怎么做吗?这是我当前的代码:lua_createtable(state,libraries.size(),0);inttable_index=lua_gettop(state);for(inti=0;i 最佳答案 这是一个将字符串推送到表中的快速辅助函数voidl_pushtablestring(lua_State*L,char*key,char*value){lua_pushstring(L,key);lua_pushstring(L,v