错误、漏洞、问题 - 页 1892 1...188518861887188818891890189118921893189418951896189718981899...3184 新评论 Renat Fatkhullin 2017.05.14 15:39 #18911 fxsaber: 另一个问题。 胎面的性能。 Konstantin 2017.05.14 17:42 #18912 Renat Fatkhullin: 踏实的工作。 如果它是一个笑话,它是有趣的)),如果不是,请解释一下什么是编程中的踩点。 TheXpert 2017.05.14 21:23 #18913 Konstantin: 请解释什么是编程中的保护器 使反编译器消失的东西 Konstantin 2017.05.15 04:26 #18914 Renat Fatkhullin:是的,这里有一个例子,证明了你的问题。 和输出。首先,我们从下往上检查未解决的铸币,得到NULL。这一点是正确的。然后我们创建一个CLASS2对象,把它的引用分配给它的父类(这里要理解的是,动态环境知道CLASS2对象的原始类型是存储在它的元信息中)。然后(只是你的问题)从引用CLASS1到CLASS2的动态投递(根据源对象的元信息检查转换权)。 我们检查铸造的结果并将其写入变量i = 1。最后我们输出i的值,指的是最初创建的对象。 所有的工作都是正确的,并且符合规范(包括C++本身的dynamic_cast规范)。 谢谢你的澄清。 现在MQL中的类型转换已经有点清楚了))但是,如果我们在任何情况下都不能从下往上投,而我们可以不从上往下投,那么创建dynamic_cast 的目的是什么?也许这里有一些微妙之处,而我却不明白? Renat Fatkhullin 2017.05.15 09:19 #18915 Konstantin: 谢谢你的澄清,我在MQL中有点明白了,因为类型转换))。但我不知道,如果我们不能从下往上投,而我们可以不从上往下投,那么我们为什么需要dynamic_cast?也许这里有一些微妙之处,而我却不明白?请重新阅读代码和我的解释。它还演示了动态铸造如何根据最初创建的对象的 元信息,安全地从下往上提升铸造。如果一个对象是从一个后裔创建的,然后转换为一个父类引用,那么基于元信息(原始对象实际上是一个后裔),你可以安全地将该引用转换为一个后裔。通常在各种子类的对象被堆积在对父类的引用数组/列表中时使用,然后检索并安全地投向一个或其他子类。如果转换的结果是NULL,这意味着该对象没有被子代取走,不应该被处理。 Konstantin 2017.05.15 10:34 #18916 Renat Fatkhullin:请重新阅读代码和我的解释。它还演示了动态铸造如何根据最初创建的对象的 元信息,安全地从下往上提升铸造。如果一个对象是从一个后裔创建的,然后转换为一个父类引用,那么基于元信息(原始对象实际上是一个后裔),你可以安全地将该引用转换为一个后裔。通常在各种子类的对象被堆积在对父类的引用数组/列表中时使用,然后检索并安全地投向一个或其他子类。如果转换的结果是NULL,那么该对象就不是由后代获取的,不应该被处理。我读了代码,但这不就是。CLASS2 *my_ptr2=dynamic_cast<CLASS2 *>(my_ptr);并不类似于此。CLASS2 *my_ptr2=(CLASS2*)my_ptr;我无法掌握使用动态_cast 的精妙之处,只是当使用动态_cast 执行代码时,我们不会得到错误,因为动态_cast 在出错时返回NULL。 Renat Fatkhullin 2017.05.15 10:36 #18917 Konstantin:我读了代码,但这不就是。并不类似于此。我无法掌握使用dynamic_cast 的非常微妙的地方,只是在执行使用dynamic_cast 的代码时,我们不会出现错误,因为dynamic_cast 在出现错误时返回NULL我建议在谷歌上阅读C++ dymanic_cast规范。这是一件微不足道的事情。 Aleksey Vyazmikin 2017.05.15 13:23 #18918 当发放PC资源时,在启动游戏时出现崩溃--游戏《使命召唤:黑色行动III》崩溃--1名特工被卷入。代理人的优先权是最小的--内存消耗了3.5G的16--一般来说应该没有问题。使用非活性制剂,游戏玩得很好。你有没有测试过代理与其他程序的兼容性? Sergey Dzyublik 2017.05.15 13:36 #18919 -Aleks-: 当发放PC资源时,在游戏开始时出现崩溃--游戏《使命召唤:黑色行动III》崩溃--涉及1名特工。代理人的优先权很小--内存消耗了3.5GB的16--一般来说,应该没有问题。使用非活性制剂,游戏玩得很好。一般来说,对代理与其他程序的兼容性进行测试? 出于某种原因,我马上想到,也许是游戏中的错误,并把它与64位机器上工作的特殊性联系起来,当程序被加载到地址空间>4GB时。 Aleksey Vyazmikin 2017.05.15 13:50 #18920 Sergey Dzyublik: 出于某种原因,我立即想到,也许是游戏中的一个错误,并把它与在64位机器上工作的特殊性联系起来,当程序被加载到地址空间> 4 GB时 也就是说,要检查这个假设,我需要把内存填到4GB以上并运行游戏--等我儿子玩的时候我再试试。 1...188518861887188818891890189118921893189418951896189718981899...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
另一个问题。
踏实的工作。
请解释什么是编程中的保护器
是的,这里有一个例子,证明了你的问题。
和输出。首先,我们从下往上检查未解决的铸币,得到NULL。这一点是正确的。
然后我们创建一个CLASS2对象,把它的引用分配给它的父类(这里要理解的是,动态环境知道CLASS2对象的原始类型是存储在它的元信息中)。然后(只是你的问题)从引用CLASS1到CLASS2的动态投递(根据源对象的元信息检查转换权)。
我们检查铸造的结果并将其写入变量i = 1。最后我们输出i的值,指的是最初创建的对象。
所有的工作都是正确的,并且符合规范(包括C++本身的dynamic_cast规范)。
谢谢你的澄清,我在MQL中有点明白了,因为类型转换))。但我不知道,如果我们不能从下往上投,而我们可以不从上往下投,那么我们为什么需要dynamic_cast?也许这里有一些微妙之处,而我却不明白?
请重新阅读代码和我的解释。
它还演示了动态铸造如何根据最初创建的对象的 元信息,安全地从下往上提升铸造。如果一个对象是从一个后裔创建的,然后转换为一个父类引用,那么基于元信息(原始对象实际上是一个后裔),你可以安全地将该引用转换为一个后裔。
通常在各种子类的对象被堆积在对父类的引用数组/列表中时使用,然后检索并安全地投向一个或其他子类。如果转换的结果是NULL,这意味着该对象没有被子代取走,不应该被处理。
请重新阅读代码和我的解释。
它还演示了动态铸造如何根据最初创建的对象的 元信息,安全地从下往上提升铸造。如果一个对象是从一个后裔创建的,然后转换为一个父类引用,那么基于元信息(原始对象实际上是一个后裔),你可以安全地将该引用转换为一个后裔。
通常在各种子类的对象被堆积在对父类的引用数组/列表中时使用,然后检索并安全地投向一个或其他子类。如果转换的结果是NULL,那么该对象就不是由后代获取的,不应该被处理。
我读了代码,但这不就是。
CLASS2 *my_ptr2=dynamic_cast<CLASS2 *>(my_ptr);并不类似于此。
我无法掌握使用动态_cast 的精妙之处,只是当使用动态_cast 执行代码时,我们不会得到错误,因为动态_cast 在出错时返回NULL。
我读了代码,但这不就是。
并不类似于此。
我无法掌握使用dynamic_cast 的非常微妙的地方,只是在执行使用dynamic_cast 的代码时,我们不会出现错误,因为dynamic_cast 在出现错误时返回NULL
我建议在谷歌上阅读C++ dymanic_cast规范。
这是一件微不足道的事情。
当发放PC资源时,在游戏开始时出现崩溃--游戏《使命召唤:黑色行动III》崩溃--涉及1名特工。代理人的优先权很小--内存消耗了3.5GB的16--一般来说,应该没有问题。使用非活性制剂,游戏玩得很好。一般来说,对代理与其他程序的兼容性进行测试?
出于某种原因,我马上想到,也许是游戏中的错误,并把它与64位机器上工作的特殊性联系起来,当程序被加载到地址空间>4GB时。
出于某种原因,我立即想到,也许是游戏中的一个错误,并把它与在64位机器上工作的特殊性联系起来,当程序被加载到地址空间> 4 GB时
也就是说,要检查这个假设,我需要把内存填到4GB以上并运行游戏--等我儿子玩的时候我再试试。