2013-10-31 40 views
1

我想在PHP中使用COM函數,但我不知道我做錯了什麼。這是我在PHP腳本第一行無法在Windows 2008 R2中使用PHP加載UniObjects COM對象

$UOSession = new COM("UniObjects.Unioiafctrl") or die("Cant instantiate UO");

我沒有使用Regsvr32註冊uniobjects.dll,這是成功的,但問題是,如果我有這條線在執行之前的任何代碼,在此之後的任何代碼行不起作用,我甚至沒有得到任何消息是DLL成功實例化或沒有。我會假設,如果它沒有實例化,我會得到消息「不能實例化UO」,但我沒有收到任何消息。這意味着它是成功的,但代碼停在那裏......有人知道我做錯了什麼嗎?

的Windows Server 2008 R2版x64,IIS7,PHP 5.3

+0

我遇到了同樣的問題,並且當我找到這個問題時會創建另一個問題。 – NeerPatel

+0

有一些差異,我使用的是Apache而不是PHP 5.4 ......但是同樣的問題。我甚至取消了它的註冊和測試[ScreenShot 2](http://screencast.com/t/l1Q9sMxdw) - 然後重做它[ScreenShot 1](http://screencast.com/t/vsrv5mpZpN)...仍然沒有運氣。我的代碼 - '<?php $ com = new Com('WScript.shell')or die(「It does not work」); 回聲「It Did!」; $ UOSession = new Com(「Uniobjects.UnioaifCtrl」)或die(「不能實例化UO」); ?>' – NeerPatel

+0

解決這個問題的關鍵是你正在運行哪個版本的PHP。如果您使用的是32位PHP,那麼UniObject COM可以工作。如果您使用的是64位版本的PHP,那麼UniObjects COM將無法工作。 UniObjects COM只有32位。 –

回答

0

Zuboje,

想通了這個問題,與國際頻譜編輯內森校長的幫助。下載32位版本的PHP並使用它。你可能有一個64位版本的PHP,它無法讀取你的32位COM對象。我能夠安裝WAMP的32位版本,並解決了我的問題。

+0

您可能還對以下文章感興趣。它討論了有關64位服務器的其他一些問題,並使用'!'和來自TCL的'sh'。 http://www.intl-spectrum.com/resource/106/Shelling-to-run-an-OS-command-from-Windows-64Bit-from-UniVerse.aspx –

相關問題