私は、COMコントロールをc#.Net 4.5で作成しました。このCOMコントロールはサードパーティのDLLを使用してUSBデバイスと通信します。COM関数はVBscriptで失敗しますが、Win64ではVB6ではありません
Windows 7の32ビット版では、VBScriptとVB6の両方から100%完全に動作します。 Windows 7 64ビットでは、USBデバイスを使用するサードパーティのdll関数を呼び出すときにVBScriptが失敗します。
"System.AccessViolationException"メッセージ: "保護されたメモリを読み書きしようとしました。これは他のメモリが壊れていることを示していることがよくあります。
私が理解していないのは、同じCOMコントロール(および同じUSBドライバ)がVB6アプリケーションからインスタンス化されたときに動作するが、VBScriptからはインスタンス化されないということです。
私は、VB6アプリケーションとVBScriptを実行しているときにプロセスモニタを使用してロードされたアセンブリとレジストリアクセスを調べましたが、普通のものは見えません。
私がトラブルシューティングや次のテストができることの提案はありますか?
VB6はいつも私が思った32ビットである、のようなあなたのDLLを登録します。 – BugFinder
はい、* op *が実際にVBAを意味する場合を除きます。たとえそうでなくても、この質問には詳細が必要だと思っています。少なくとも、何が試されたのか、問題を引き起こす関連する実例、エラーコードなどを表示してください。 – acelent
c:\ windows \ syswow64 \ cscript.exe "myScript.vbs' –