Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
加入引擎和GUI的提示 我有一个用C++编写的游戏引擎。我有自己的“开发”GUI。该程序将在日本出售,我有一家日本出版商,他已经编写了一个商业图形用户界面来连接我的游戏引擎。这种安排我们已经有很多年了。我的引擎和他的GUI都是大型的、复杂的,并且在不同版本之间都会定期进行更改。当我的发布者想要一个新版本时,我会将我的源文件发送给他,然后他会将源文件与他的GUI一起编译,他的GUI会在我的引擎中调用一组预先安排好的函数。似乎每次我们经历这个过程时,总是会被一两个编译器标志绊倒,这两个编译器标志在他的端与我的端不同。如果我们都说同一种语言,在同一个时区,这将是一个非常小的问题,但由于我们不这样做,似乎即使是最小的问题也会导致严重的头痛和延误_C++_Visual Studio 2008_Winapi - Fatal编程技术网

加入引擎和GUI的提示 我有一个用C++编写的游戏引擎。我有自己的“开发”GUI。该程序将在日本出售,我有一家日本出版商,他已经编写了一个商业图形用户界面来连接我的游戏引擎。这种安排我们已经有很多年了。我的引擎和他的GUI都是大型的、复杂的,并且在不同版本之间都会定期进行更改。当我的发布者想要一个新版本时,我会将我的源文件发送给他,然后他会将源文件与他的GUI一起编译,他的GUI会在我的引擎中调用一组预先安排好的函数。似乎每次我们经历这个过程时,总是会被一两个编译器标志绊倒,这两个编译器标志在他的端与我的端不同。如果我们都说同一种语言,在同一个时区,这将是一个非常小的问题,但由于我们不这样做,似乎即使是最小的问题也会导致严重的头痛和延误

加入引擎和GUI的提示 我有一个用C++编写的游戏引擎。我有自己的“开发”GUI。该程序将在日本出售,我有一家日本出版商,他已经编写了一个商业图形用户界面来连接我的游戏引擎。这种安排我们已经有很多年了。我的引擎和他的GUI都是大型的、复杂的,并且在不同版本之间都会定期进行更改。当我的发布者想要一个新版本时,我会将我的源文件发送给他,然后他会将源文件与他的GUI一起编译,他的GUI会在我的引擎中调用一组预先安排好的函数。似乎每次我们经历这个过程时,总是会被一两个编译器标志绊倒,这两个编译器标志在他的端与我的端不同。如果我们都说同一种语言,在同一个时区,这将是一个非常小的问题,但由于我们不这样做,似乎即使是最小的问题也会导致严重的头痛和延误,c++,visual-studio-2008,winapi,C++,Visual Studio 2008,Winapi,有人建议,如果我向他发送一个库而不是源文件,那么这将减少出错的机会,而其他人则说我应该向他发送项目文件。。。。我不太确定这两种方法的优劣 是否有人有任何技巧或建议来最大限度地降低此过程中出现故障的风险。有没有办法进行运行时/编译时检查,以确保所有编译和链接选项都符合预期 编辑:刚刚注意到关于在GCC中记录编译器标志的问题。似乎GNU允许这样做。visual studio是否有等效的命令?尽可能将GUI与引擎分离。理想情况下,GUI应该位于一个单独的库中,如果切换GUI,则只应重新编译该库 一个好

有人建议,如果我向他发送一个库而不是源文件,那么这将减少出错的机会,而其他人则说我应该向他发送项目文件。。。。我不太确定这两种方法的优劣

是否有人有任何技巧或建议来最大限度地降低此过程中出现故障的风险。有没有办法进行运行时/编译时检查,以确保所有编译和链接选项都符合预期


编辑:刚刚注意到关于在GCC中记录编译器标志的问题。似乎GNU允许这样做。visual studio是否有等效的命令?

尽可能将GUI与引擎分离。理想情况下,GUI应该位于一个单独的库中,如果切换GUI,则只应重新编译该库

一个好的、广泛使用的解决方案是使用脚本语言分离GUI,Lua经常用于此目的


在Windows下,完美的解决方案是以这样的方式拆分GUI,即替换dll将改变GUI本身。有关使用dll提供模块化子系统的示例,请参见。

尽可能将GUI与引擎分离。理想情况下,GUI应该位于一个单独的库中,如果切换GUI,则只应重新编译该库

一个好的、广泛使用的解决方案是使用脚本语言分离GUI,Lua经常用于此目的


在Windows下,完美的解决方案是以这样的方式拆分GUI,即替换dll将改变GUI本身。请参阅,以获取使用dll提供模块化子系统的示例。

我想说,所有这些代码对编译器设置的敏感程度实际上有些令人惊讶。你知道你在日本的出版商是将你的代码编译成库,还是直接编译成主GUI?如果它们需要不同的编译器标志,那么它们当然不应该在VisualStudio的同一个项目中编译这两者

如果这是C++,你可以用来确定某些事情被设置,如果可能没有设置,你也应该在一些地方放置一些错误的宏。 说到这里,我会给他们发送一个DLL和头文件。无论他们如何设置编译器标志,这都应该有效


编辑:此外,如果游戏没有硬核实时GUI要求,建议您使用可以使用JSON、XML、ASN.1或您自己的语法定义的协议替换对引擎的深度调用,具体取决于您的游戏。在这种情况下,接口变得微不足道,很难用错误的链接标志之类的东西来破坏。

我想说,实际上,所有这些代码对编译器设置的敏感程度有点令人惊讶。你知道你在日本的出版商是将你的代码编译成库,还是直接编译成主GUI?如果它们需要不同的编译器标志,那么它们当然不应该在VisualStudio的同一个项目中编译这两者

如果这是C++,你可以用来确定某些事情被设置,如果可能没有设置,你也应该在一些地方放置一些错误的宏。 说到这里,我会给他们发送一个DLL和头文件。无论他们如何设置编译器标志,这都应该有效


编辑:此外,如果游戏没有硬核实时GUI要求,建议您使用可以使用JSON、XML、ASN.1或您自己的语法定义的协议替换对引擎的深度调用,具体取决于您的游戏。在这种情况下,接口变得微不足道,很难用错误的链接标志之类的东西来破坏。

对编译器标志的敏感性来自大小、复杂性、优化和使用年限。我全天都在做这个程序,我写的99.999%是独立于标志的,但每隔几年我会做一次使程序对某个标志敏感的事情。。。25年后。。。这个程序现在对很多标志都很敏感。DLL的想法听起来很有希望。。。我以前从未创建过DLL,所以我需要进一步研究…创建DLL过去非常复杂,但现在已经不是了。如果项目是C++,则将项目的常规选项卡中的配置类型更改为DLL。在C++/代码生成选项卡中,将运行时设置为多线程DLL(这是Microsoft运行时,不是您的)。这个建议应该解释其余的:对编译器标志的敏感度是通过大小、复杂性、优化和使用年限来实现的。我全天都在做这个程序,我写的99.999%是独立于标志的,但每隔几年我会做一次使程序对某个标志敏感的事情。。。25年后。。。这个程序现在对很多标志都很敏感。DLL的想法听起来很有希望。。。我以前从未创建过DLL,所以我需要进一步研究…创建DLL过去非常复杂,但现在已经不是了。如果你的项目是C++,那么改变配置