对解决这个问题有什么建议吗?
下面的代码在记录<part>14和记录<part>15之间断断续续地崩溃。Plaintext是一个路径字符串(在本例中是"C:\Documents and Settings\Brian\Desktop\Joy\",尽管明显缺少这种快乐)。我有一种下沉的感觉,这是某种邪恶记忆问题的症状。我尝试使用Capicom 2.1.0.1和2.1.0.2,它们都崩溃了。后者给出一个标准的错误报告消息,前者静默地死亡(即程序自动关闭)。我在别人的XP机器上测试了它,也遇到了同样的问题,尽管它在Vista上运行良好。
Const curMthd = "EncryptStringWrap"
Dim Message As CAPICOM.EncryptedData
Set Message = New CAPICOM.EncryptedData
Dim oUtil As CAPICOM.Utilities
Set oUtil = New CAPICOM.Utilities
E.ErrorLog "<PART>14"
Message.Content = plaintext
E.ErrorLog "<PART>15"编辑:造成问题的不是数据。我一直在手动传递数据来测试这一点;它正常工作。令人恼火的是,当我将测试代码放入初始化时,bug就消失了。邪恶的海森虫:( .可能是内存问题:(
编辑2:重写和whatnot here,并关闭。与这个问题本身并不是同一个问题,但这个问题是基于对这个问题的严重误解。
发布于 2008-12-01 19:52:17
斜杠可能导致CAPICOM无法正确处理字符串。通过将代码放入提供不同字符串的循环中,您可以找出问题序列。
鉴于CAPICOM是cryptoAPI的包装器,这可以为您提供另一种路径,您可以在其中运行一个测试项目,使用相同的序列和相同类型的调用直接访问Crypto API。从互联网上阅读是一个薄薄的包装。
MSDN有一些示例代码here,还有更多可用。
我用这种方式处理了各种“包装器”Com DLL的许多问题。找到导致问题的数据。使用Win API直接使用相同的数据编写测试项目。然后进行评估。
结果通常是我实现了自己的包装器。或者发现我遗漏了一个步骤,或者配置错误。
请注意,这也适用于.NET中的包装器程序集,另外一个好处是可以使用反射器来查看包装器正在做什么。
https://stackoverflow.com/questions/331901
复制相似问题