0

このクラッシュを理解するための提案はありますか?

<part>14以下のコードは、ロギングとロギングの間で断続的にクラッシュし<part>15ます。 Plaintextはパス文字列です(この場合は"C:\Documents and Settings\Brian\Desktop\Joy\"、そのような喜びが明らかに欠如しているにもかかわらずです。これはある種の邪悪な記憶の問題の症状であると感じています。Capicom2.1.0.1と2.1.0.2の両方で試しました。後者は標準のエラー報告メッセージを表示し、前者はサイレントに終了します(つまり、プログラムが自動的に閉じます)。Vistaでは正常に動作しましたが、同じ問題で他の誰かのXPマシンでテストしました。

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"

編集:問題を引き起こしているのはデータではありません。これをテストするために、手動でデータを渡しています。正常に動作します。迷惑なことに、テストコードを初期化に入れるとバグがなくなりました。邪悪な特異なバグ:(。おそらくメモリの問題:(

編集2:書き直され、ここには何もありません、そして閉じられました。これ自体と実際には同じ質問ではありませんが、この質問は問題の深刻な誤解に基づいていました。

4

1 に答える 1

0

スラッシュが原因で、CAPICOM が文字列を適切に処理できなくなる可能性があります。さまざまな文字列をフィードするループにコードを入れることで、問題のシーケンスを見つけることができます。

CAPICOM が cryptoAPI のラッパーであることを考えると、同じシーケンスと同じタイプの呼び出しを使用して、Crypto API に直接アクセスするテスト プロジェクトを実行する別のパスが得られる可能性があります。インターネットで読んだことから、薄いラッパーです。

MSDN には、いくつかのサンプル コードがあります

このようにして、さまざまな「ラッパー」Com DLL に関する多くの問題に対処しました。問題の原因となっているデータを見つけます。同じデータを使用して、Win API を直接使用してテスト プロジェクトを作成します。その後、評価します。

結果は通常、独自のラッパーを実装するかのいずれかです。または、ステップが抜けていたり、設定が間違っていたりします。

これは、.NET のラッパー アセンブリでも機能し、リフレクターを使用してラッパーの動作を確認できるという追加の利点があることに注意してください。

于 2008-12-01T19:52:17.090 に答える