为了能够回答上面的问题,我们应该知道在PC上运行的OS无法返回适当的答案,以及其他答案。没有它,我只能猜出问题的原因。它可能是:
- 操作系统问题 - 是正在运行的操作系统提供的功能吗? (例如:家庭版Windows版本不支持域名。)(尝试在具有相同操作系统的其他计算机上运行(不仅仅是主要版本,如2000 / Me / XP / Vista / 7等,但是版本如Home /企业/终极等。))
- 内存管理问题 - 是否为被调用函数正确保留了内存?如果传递的缓冲区太小,某些函数会返回乱码。 (解决方法尝试传递一个非常大的缓冲区,看看传递的缓冲区是否仍然包含乱码。)
- 调用约定问题 - 您是否检查过是否使用了正确的调用约定? (解决方案使用stdcall进行调试构建,并在非工作机器上进行尝试。)
- 与功能相关的问题 - 我不知道此DLL的功能是什么。它可能会优雅地失败吗?是否有可能返回的值似乎只是胡言乱语? (解决方案:检查DLL文件的文档。)
- Unicode-Ansi转换错误 - 您可能会在不知情的情况下将Unicode字符串评估为Ansi或反之亦然。 (解决方案:尝试使用
GetCID(pWideChar(prm), pWideChar(uCID)
约定来查看错误是否消失))
- 硬件错误(相当不太可能) - 如果发生RAM错误,所有响应都可能是随机的。 (Soultion:尝试在配置完全相同的其他计算机上运行程序。如果运行良好,请在PC上运行内存测试,结果错误。)
要获得更准确的帮助,我需要更多信息正在运行的计算机:
- 操作系统(不仅有2000 / Me / XP / Vista / 7等主要版本,还有Home / Enterprise / Ultimate等版本)。
- 处理器类
关于问题本身:
- 某些代码示例在有罪的PC上失败并在其他PC上运行良好。
(包括记忆预约。)
- 调用之前和之后的CPU窗口的屏幕截图。
- 不要忘记显示/描述在运行代码时考虑的计算机上发生的事情! (它也可能在那里失败,但由于突然的情况,故障被隐藏了。)