0

有关解决此崩溃的任何建议?

下面的代码在 logging<part>14和 logging之间间歇性地崩溃<part>15Plaintext是一个路径字符串(在这种情况下它是"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"

编辑:这不是导致问题的数据。我一直在手动传递数据来测试这个;它工作正常。令人讨厌的是,当我将测试代码放入初始化时,该错误就消失了。邪恶的 heisenbug :( 。可能是内存问题 :(

编辑2:重写和这里的东西,然后关闭。与这个问题本身并不完全相同,但这个问题是基于对问题的严重误解。

4

1 回答 1

0

斜杠可能会导致 CAPICOM 无法正确处理字符串。通过将代码放入循环中,您可以在其中输入不同的字符串,您可以找出问题顺序。

鉴于 CAPICOM 是 cryptoAPI 的包装器,这可以为您提供另一条路径,您可以在其中运行测试项目,使用相同的序列和相同类型的调用直接访问 Crypto API。从互联网上阅读是一个薄包装。

MSDN 有一些示例代码这里还有更多可用的。

我以这种方式处理了各种“包装器” Com DLL 的许多问题。找出导致问题的数据。使用相同的数据直接使用 Win API 编写测试项目。然后评价。

结果通常是我实现自己的包装器。或者发现我少了一个步骤或者配置错误。

请注意,这适用于 .NET 中的包装程序集,并具有能够使用反射器查看包装器在做什么的额外好处。

于 2008-12-01T19:52:17.090 回答