トップ «前の日記(2009-02-10) 最新 次の日記(2009-02-12)» 編集

日々の破片

Subscribe with livedoor Reader
著作一覧

2009-02-11

_ 32bit COMサーバのCLSID

何をしてもHKCR\CLSIDの下にASRが登録できないので閉口する。しかし生成できる。

考えてみたら64ビットWindowsではHKCR\CLSIDは64ビット用になっていたのか。

結局 HKCR\Wow6432Node\CLSID の下に登録されていた。

_ Win64環境での32ビットスクリプト

VBScriptからASRを呼ぶテストをしていて妙な現象に悩む。

VC6++から実行するとデバッグモードだろうが、リリースモードだろうが実行できる。

しかし、CMD.EXEからCScriptを指定しようが直接vbsを指定しようが、オブジェクトの生成に失敗する。

まったくわからん。

で、上のレジストリからふと、64ビットcscriptが実行されているのが原因ではないかと気づく。

おそらく、Win64は賢く32ビットアプリケーションのVC++6が実行する場合は32ビットアプリケーションを実行しているので(PATHは\windows\system32\cscript.exeを指定しているわけだが)、そこのシームレスさにだまされていたということだ。

で、探してみたら、C:\windows\syswow64\cscript.exeというのが見つかる。

で、これを指定してvbsを実行すると無事、ASRの実行に成功。

なるほど、という感じだ。

それにしてもMSHTAは、このあたりをどうしてうまく処理できるんだろうか?

本日のツッコミ(全2件) [ツッコミを入れる]
_ ishisaka (2009-02-11 08:28)

HTAは32bit版のIEに関連づけられているので問題なしと言うことなんでしょう。<br><br>COMですが、64bit版でのCOMとか、32bitと64bitとの間でのCOM接続機能とか資料があんまり無いんですよね。

_ arton (2009-02-11 09:57)

>.HTAは32bit版のIEに関連づけられているので問題なし<br>それはMSの賢明な判断ですね(ActiveXコントロールのほとんどは32ビットのままだろうし)。<br>>資料があんまり<br>それ以前に自分が64ビット環境を知らなすぎる事実に愕然でした。


2003|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|

ジェズイットを見習え