2012-03-08 16 views
1

MFC ActiveXコントロールを開発し、必要なcabファイルとinfファイルを作成しました。 32ビットIEで完全に動作しています。私は64ビットIEにアクセスしようとすると、私にインストールを促していますが、関数にアクセスしようとすると、エラーメッセージ "オブジェクトはこのプロパティまたはメソッドをサポートしていません"と表示されます。私は64ビットIEのために特別な何かをする必要がありますか?私は、64ビットモードで私のコントロールをコンパイルし、2つのCABファイルを生成YMSで述べたように64ビットIEでActiveXコントロールをインストール

ソリューション

。ウェブページによって修飾私は適切なCABファイルをDLLの64ビットapplications.Youに直接使用することができない

<script language="jscript"> 
document.write("<OBJECT width='600' height='300' id='ActiveXPowUpload' " 
    + "CLASSID='CLSID:FB98CEED-9DE1-4517-B30C-CDA19C6D150B' "); 
if(navigator.cpuClass.toLowerCase() == "x64") { 
    document.write("codebase='ActiveXPowUpload-x64.cab#Version=1,0,0,1'>\n"); 
} else { 
    document.write("codebase='ActiveXPowUpload-x86.cab#Version=1,0,0,1'>\n"); 
} 
document.write("<param name='UploadURL' value='http://hostname/path/to/upload/script.aspx' />\n"); 
document.write("<param name='EnablePopupMenu' value='false' />\n"); 
<!-- other parameters --> 
document.write("</OBJECT>\n"); 

+0

2つの異なるDLLを作成したとします.1つは各CPUアーキテクチャごとです。 – yms

+0

@ymsいいえ、私はただ1つのocxファイルで試しています – Jeeva

答えて

1

32ビットをダウンロードするために、各CPUアーキテクチャの1つのDLLを作成する必要があります。

64ビットバージョンのWindowsでは、32ビットアプリケーション用と64ビット用の2つの異なるレジストリストレージが用意されているため、同じGUIDでDLLとタイプライブラリの両方を登録でき、各アプリケーションは適切なDLLをピークにしますそれが構築されたCPUアーキテクチャ。

+0

私はプロジェクトの設定を変更する必要がありますか? – Jeeva

+0

はい、それを64ビットとして設定して再構築する必要があります。細かいことに注意していない場合は、コードを変更する必要があります。参照してください:[一般的なVisual C++ 64ビット移行の問題](http://msdn.microsoft.com/en-us/library/3b2e7499(VS.80).aspx) – yms

+0

64ビットのcabファイルを作成しました。うまくいきます。今私は2 CABファイル64&32.私は適切なタクシーを読み込むためにHTMLを作る必要がありますか? – Jeeva