C++ 如何在执行过程中使用.h文件而不在C++;?

C++ 如何在执行过程中使用.h文件而不在C++;?,c++,c,C++,C,我必须在程序编译后使用头文件。由于客户端请求,此标头从服务器下载。在头中有3个数组和1个int,我希望在执行期间读取它们 我的第一个解决方案是编写解析器。头文件总是有相同的模式,所以我可以写4行来读取数组和int 还有其他解决办法吗?ho知道,可能是一个动态include和一个预编译头 这是完整的解释: 我正在使用高通AR SDK开发本机Android应用程序 使用自己的3D模型的一种技术是使用以下perl脚本:。基本上,您需要2个文件:一个包含顶点、法线和纹理坐标的标题,以及纹理。上面的脚本

我必须在程序编译后使用头文件。由于客户端请求,此标头从服务器下载。在头中有3个数组和1个int,我希望在执行期间读取它们

我的第一个解决方案是编写解析器。头文件总是有相同的模式,所以我可以写4行来读取数组和int

还有其他解决办法吗?ho知道,可能是一个动态include和一个预编译头


这是完整的解释:

我正在使用高通AR SDK开发本机Android应用程序

使用自己的3D模型的一种技术是使用以下perl脚本:。基本上,您需要2个文件:一个包含顶点、法线和纹理坐标的标题,以及纹理。上面的脚本可以从.obj文件生成此头

好了,现在这两个文件都可以在原生C/C++中用于渲染模型了。您可以编译此头并将其包含在应用程序中任何需要的位置。但是我的应用程序需要在用户按下按钮时下载这个标题和纹理。纹理很容易读取,但我还需要在执行时读取标题。因为我不是C/C++专家,所以我在这里询问是否有机会在执行时链接头


但现在没关系了,因为我已经编写了一个解析器,所以我可以在执行时使用顶点、纹理坐标和法线。

不,你必须编写一个解析器。有些语言在运行时可以合并新代码,但C++不是其中之一。

< P>不必编写解析器。有些语言在运行时可以合并新的代码,但C++不是其中之一。

C++是(通常)静态编译的语言。您可以编译它,并获得一些可执行代码,您可以运行这些代码。编译前后的两个阶段互不相关。在编译时,只处理C++源代码。 在运行时,处理一个由所有源代码生成的编译程序

一旦程序编译完成,通常没有办法“添加”源代码到程序中

(我在这里简化了一点,希望挑剔的人会原谅我)

相反,您需要做的是将“头”视为数据,而不是代码

它是一个包含三个数组和一个int的数据文件。您需要编写程序来打开该文件,读取其内容,解析它,并执行必要的操作

要做到这一点,您需要查看文件I/O以加载文件,通过字符串操作来处理其内容,然后通过一些逻辑来创建变量以保存数据文件中指定的数据

但是你不能仅仅“插入”新代码。

C++通常是一种静态编译语言。您可以编译它,并获得一些可执行代码,您可以运行这些代码。编译前后的两个阶段互不相关。在编译时,只处理C++源代码。 在运行时,处理一个由所有源代码生成的编译程序

一旦程序编译完成,通常没有办法“添加”源代码到程序中

(我在这里简化了一点,希望挑剔的人会原谅我)

相反,您需要做的是将“头”视为数据,而不是代码

它是一个包含三个数组和一个int的数据文件。您需要编写程序来打开该文件,读取其内容,解析它,并执行必要的操作

要做到这一点,您需要查看文件I/O以加载文件,通过字符串操作来处理其内容,然后通过一些逻辑来创建变量以保存数据文件中指定的数据


但是你不能只是“插入”新代码。

为了补充jalf的答案(现在问题已经被重新打开了…谢谢你),如果你的目标是使用头中的常量值作为配置文件,那么实现一些简单的正则表达式解析器就足够了

只需确保需要使用常量修改的变量实际上是变量,而不是常量本身,否则无法在运行时修改它们

例如,如果要从config.h读取MAX_文件,请不要使用默认的#define MAX_FILES 255或const int MAX_FILES=255进行编译。使用“int maxFiles=255”,然后在运行时用配置值覆盖它


如果我误解了,请道歉,希望这能有所帮助。

为了补充jalf的答案(现在问题已经被重新打开了…谢谢),如果您的目标是使用头中的常量值作为配置文件,那么实现一些简单的正则表达式解析器就足够了

只需确保需要使用常量修改的变量实际上是变量,而不是常量本身,否则无法在运行时修改它们

例如,如果要从config.h读取MAX_文件,请不要使用默认的#define MAX_FILES 255或const int MAX_FILES=255进行编译。使用“int maxFiles=255”,然后在运行时用配置值覆盖它


如果我误解了,请道歉,希望这能有所帮助。

听起来您是在尝试使用配置文件。您可以控制服务器上文件的格式吗?如果是这样的话,这里最简单的方法就是以标准格式(如xml)编写配置文件,然后在接收配置文件时使用类似库的方法解析配置文件

使用标准格式的好处在于,如果您决定以后更改配置文件格式,请添加到配置文件中,等等。解析更新后的文件将相对容易地更新代码。通常比重新编写自定义解析器的工作量要少

如果您无法控制服务器文件的外观,并且它们不是JSON、XML、YAML等标准格式,那么您必须编写自己的自定义解析器。听起来这是一个相对简单的文件,所以无论如何这应该不会太难。

听起来你是tr