2010-07-13 129 views
2

我又寫道COM對象 的DLL我註冊它 我在哪裏可以現在發現這個DLL在我的機器 (當我們註冊的dll到了nachine複製DLL),如果我嘗試使用在哪裏可以找到COM DLL?

多的問題這個COM對象在PowerShell中一切都很順利 如果我嘗試在javaScript中使用它,我會得到異常 任何想法?爲什麼??

回答

4

註冊COM DLL不會複製該DLL。它只是添加COM用來查找您的DLL的註冊表項。例如,爲每個類添加一個鍵「HKEY_CLASSES_ROOT \ CLSID {您的類ID}」。很多時候,DLL的路徑作爲默認值存儲在諸如「InprocServer32」的子項中(實際名稱取決於您的類如何配置爲激活)。因爲JavaScript是建立出於安全原因,一個孤立的環境中執行

JavaScript不能訪問COM對象,甚至本地文件對於這個問題,。

2

正如理查德沃爾特斯所說,註冊COM對象不會將其複製到任何地方。通常我懶惰,而不是在REGEDIT中查找長GUID,我使用查找功能搜索DLL的名稱。

既然你提到了PowerShell,我可以假設你正在嘗試在Windows Script Host中使用Javascript嗎?如果是這樣,知道什麼是例外可能會有所幫助。如何做到這一點的例子:

var xml = new ActiveXObject(「Microsoft.XMLDOM」);

xml.load(「foo.xml」);

當然用來自COM對象的信息替換Microsoft.XMLDOM。

等效PowerShell的將是:

$ XML =新物體-ComObject Microsoft.XMLDOM

$ xml.load( 「foo.xml」)

相關問題