将代码迁移到 python 3 的 C 扩展后计算出错误的校验和

Wrong checksum calculated after migrating code to C extension for python 3

我是 python C 扩展代码的新手,正在使用 Visual Studio 2015 将旧的基于 python 2.7 的 C 扩展代码迁移到基于 python 3.6 的 C 扩展代码。

旧代码中的步骤 -

新迁移代码中的步骤 -

使用新代码时,我得到了错误的校验和。迁移代码中的新步骤是否正确?是由于 char* 和 unsigned char* 指针的不同吗?谁能指导我如何计算正确的校验和?

在发布这个问题时,我认为这可能是因为 char* 和 unsigned char* 指针的不同。我只是尝试通过将 char* 指针转换为 unsigned char* 指针来实现该解决方案。仅在计算校验和时才这样做,瞧!成功了!