使用32ビットのCOMオブジェクトからC#またはVBSにVista64ビットおよび取得エラー80004005

StackOverflow https://stackoverflow.com/questions/396933

  •  29-08-2019
  •  | 
  •  

質問

いをしていくものではなく読み、あらかじめ私のことをしようとしていません完全に理解する

あ32bitアプリケーション(電子取引アプリケーションと呼ばれCQGの提供COM APIのための外部アクセス。私はサンプルプログラムおよびスクリプトのアクセスがこのAPIからExcel.純(C++、VB、C#)およびシェルのVBScript.しています。アプリケーションとしてソースコードとして作成中のファイル(32ビット、Windows XP).

しかし、今までWindows Vista Home64ビットが私の頭をスピン。Excel例の仕事は、イブレア城、イブレア(Excel2003).の取りまとめを行いました。純サンプル実行可能ファイルを作業しています。

しかしよう心掛けております。純C#のサンプルに変換され、成Visual Studio(C#、表現や、VBScriptスクリプトを取得していますエラー80004005が作り出してしまおうというものは、オブジェクトです。当初きます。NETアプリケーションものにしてくれた80040154がそのきっかけになるかもしれないとうとしてい32ビットコードは64ビットの、現在のクライアントまで、フルのC#とVBScriptの用途は同じです。ことになるすべての進歩んでます。

ありっ走32-bitバージョンのcscript.exe/WScriptからSysWOW64フォルダに自分VBSものの、結果は同じです(80004005).

うことがあります。私はほとんど準備えすることは事実上不可能であることExcelのVBAの作品。純実行可能ファイルを作成Windows XP*環境でうまく実行ょっと怒っていました。あったのでこのこと(一部の秘密にするかどうかをWindowsの開発者か!いまのお役に立てるよう!

PS:私はコードサンプルを作りませんか意味で、このVBScriptる失敗した:

Set CEL = WScript.CreateObject("CQG.CQGCEL.4.0", "CEL_")

これはC#:

CQGCEL CEL = new CQGCEL();

更新:忘れてい UAC がoffします。とんかつアカウント管理者priviledges.

もう見るレジストリキーを使って読み込む工程モニターすべてが見えOKのための特別な技術を必要とのこのオブジェクトです。かを認識しないその他の特別な技術を必要とんかはまだわかりませんが、いずれも重要です。

あることになり、このCOMオブジェクト用のInternet Explorerを取得し、もしかしたら間違って(Internet Explorer7ではなくインターネットExplorer6エンジンか何かで)?

役に立ちましたか?

解決

がいいものもうひとつ忘れてはいけないの64ビット機です。これらの一部になってもらえたんだ。

  1. ビルの他のCPU .当期純 手段 するととして64ビット、64ビット 機です。
  2. 多くの部品 そうすると32ビットのみを知っているこ はgeneralisationがしばしば の場合)。利用するためにしてください 必要に応用して32 ビット(x86).
  3. 64ビットWindowsでは、 異なる32ビット版および64ビット版レジストリ ノード。例えば、実行 regeditとして64ビットが見えます HKLM\Software\Wow6432Nodeと HKCU\Software\Wow6432Node.この 全ての情報32 ビット願います。

私の提案が構築として32ビット申請、何が起こるか見てみてください.

他のヒント

問題は、おそらくDEPです。

私はあなたとまったく同じ問題を抱えていた、とCQGの技術サポートからいくつかの助けを得ました。データ実行防止は、デフォルトではWindows Vistaの&Windows 7のでオンになっています。あなたが使用して管理者権限でコマンドプロンプトでとそれをオフにすることができます。

bcdedit.exe /set {current} nx AlwaysOff
あなたが必要な場合は、

その後、あなたが戻ってそれをオンにすることができます。

bcdedit.exe /set {current} nx AlwaysOn

再起動が促さが、必須ではありません。あなたが使用してDEPポリシーを確認することができます。

wmic OS Get DataExecutionPrevention_SupportPolicy
0Always offある

1Always On2(デフォルト値)であり、そしてOpt in3で、Opt Outである。

常にオフや再起動に地雷を変更した後、私は80004005エラーをスローせずにコンパイルすることができました。

カップルの有んでいることが試み:

  1. 工程モニター る出力フィルタに失敗します。その奇エラーを報告する。

  2. 同様に、走行下でのポリデバッガを見た場合、その他のチャンスが例外はスローされます。これはもうすることを確認してくださる場合にinproc COM dllがロードされます。

  3. まわしてみてはいUAC offやかな印象を持ちます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top