我们在配置OpenAL的时候到底做了什么

2023-12-20 19:32
文章标签 配置 到底 openal

本文主要是介绍我们在配置OpenAL的时候到底做了什么,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、结论在先


  1. SDK安装 == 仅复制文件到安装指定文件夹下

  2. oalinst.exe == 将 32 位和 64 位的两个 DLL 分别拷贝至对应的系统文件夹

    OpenAL32.dllwrap_oal.dll

二、我为什么要这样做 —— 不想反复的安装SDK


最近的项目中需要对之前开发的基于 OpenAL 的音频处理库进行封装,在打包调试的过程中发现了一个问题,就是按照我之前一篇博客配置的流程,中间第二步安装 oalinst.exe,如果这一步不进行,那么编译不会报错,但是并没有声音。如果我不去处理这个问题,会造成以下结果:

在每一台新机器上需要使用我的音频处理模块时都需要安装 SDK。

这个就很不方便,因为我的模块可能会在大程序里,但是还总得想着带着这个安装包,如果以后我不负责这个模块,那么没有人知道为什么模块没错误却没有声音。


三、我是怎么解决的


所以为了解决这个问题,我进行了如下工作,其实也很简单:

首先在安装SDK的情况下:
打开 C:\Windows\System32 和 SysWOW64 文件夹

  1. 不安装 oalinst.exe ,测试程序是否好用。 (NO) 记录两个文件夹下的文件数 N1

  2. 安装 oalinst.exe ,测试程序是否好用。 (YES) 记录两个文件夹下的文件数 N2

  3. 卸载 oalinst.exe ,测试程序是否好用 (NO),如果不好用是否跟1的状态一样。 (YES)

  4. 发现 N1 和 N2 的差,初步找到了问题所在。

  5. 将两个文件夹中多出的文件拷贝出来(两个DLL),卸载 oalinst.exe,将这两个 DLL 放在我的程序目录
    下,在一台完全没有配置 OpenAL 的机器上运行,测试是否好用。(YES)


四、问题解决

找到了问题所在,也就是 SDK 安装这一步仅复制了以下 5 个文件夹到安装目录下。

docs
include
libs
redist
samples

而关键的是 oalinst.exe 这一步,不仅把 OpenAL32.dll 复制到对应的系统目录下,还多复制了一个 wrap_oal.dll 那么把这俩文件拷出来放在我的模块中,以后不安装 OpenAL 的机器也能顺利调用我的模块啦。文章可能写的比较啰嗦,欢迎有问题的同学来交流。

这篇关于我们在配置OpenAL的时候到底做了什么的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/517227

相关文章

C#读取本地网络配置信息全攻略分享

《C#读取本地网络配置信息全攻略分享》在当今数字化时代,网络已深度融入我们生活与工作的方方面面,对于软件开发而言,掌握本地计算机的网络配置信息显得尤为关键,而在C#编程的世界里,我们又该如何巧妙地读取... 目录一、引言二、C# 读取本地网络配置信息的基础准备2.1 引入关键命名空间2.2 理解核心类与方法

最新版IDEA配置 Tomcat的详细过程

《最新版IDEA配置Tomcat的详细过程》本文介绍如何在IDEA中配置Tomcat服务器,并创建Web项目,首先检查Tomcat是否安装完成,然后在IDEA中创建Web项目并添加Web结构,接着,... 目录配置tomcat第一步,先给项目添加Web结构查看端口号配置tomcat    先检查自己的to

Servlet中配置和使用过滤器的步骤记录

《Servlet中配置和使用过滤器的步骤记录》:本文主要介绍在Servlet中配置和使用过滤器的方法,包括创建过滤器类、配置过滤器以及在Web应用中使用过滤器等步骤,文中通过代码介绍的非常详细,需... 目录创建过滤器类配置过滤器使用过滤器总结在Servlet中配置和使用过滤器主要包括创建过滤器类、配置过滤

在 VSCode 中配置 C++ 开发环境的详细教程

《在VSCode中配置C++开发环境的详细教程》本文详细介绍了如何在VisualStudioCode(VSCode)中配置C++开发环境,包括安装必要的工具、配置编译器、设置调试环境等步骤,通... 目录如何在 VSCode 中配置 C++ 开发环境:详细教程1. 什么是 VSCode?2. 安装 VSCo

在Spring中配置Quartz的三种方式

《在Spring中配置Quartz的三种方式》SpringQuartz是一个任务调度框架,它允许我们定期执行特定的任务,在Spring中,我们可以通过多种方式来配置Quartz,包括使用​​@Sche... 目录介绍使用 ​​@Scheduled​​ 注解XML 配置Java 配置1. 创建Quartz配置

Kibana的安装和配置全过程

《Kibana的安装和配置全过程》Kibana是一个开源的数据分析和可视化平台,它与Elasticsearch紧密集成,提供了一个直观的Web界面,使您可以快速地搜索、分析和可视化数据,在本文中,我们... 目录Kibana的安装和配置1.安装Java运行环境2.下载Kibana3.解压缩Kibana4.配

tomcat在nginx中的配置方式

《tomcat在nginx中的配置方式》文章介绍了如何在Linux系统上安装和配置Tomcat,并通过Nginx进行代理,首先,下载并解压Tomcat压缩包,然后启动Tomcat并查看日志,接着,配置... 目录一、下载安装tomcat二、启动tomcat三、配置nginx总结提示:文章写完后,目录可以自动

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

hadoop开启回收站配置

开启回收站功能,可以将删除的文件在不超时的情况下,恢复原数据,起到防止误删除、备份等作用。 开启回收站功能参数说明 (1)默认值fs.trash.interval = 0,0表示禁用回收站;其他值表示设置文件的存活时间。 (2)默认值fs.trash.checkpoint.interval = 0,检查回收站的间隔时间。如果该值为0,则该值设置和fs.trash.interval的参数值相等。