2013-10-31 2 views
1

PHP에서 COM 함수를 사용하려고하는데 잘못된 것이 무엇이 있는지 잘 모르겠습니다. 이것은 PHP 스크립트의 첫 라인Windows 2008 R2에서 UniObjects COM 개체를 PHP로로드 할 수 없습니다.

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

내가했던 uniobjects.dll 등록 사용에 regsvr32과 성공하지만, 문제는 내가 그것을 실행이 줄 앞에 코드,이 후 코드가있는 경우 라인이 작동하지 않고 어떤 메시지도 성공적으로 인스턴스화 된 dll이 아니 었습니다. 나는 그것이 인스턴스화되지 않으면 "Cant instantiate UO"라는 메시지를 얻지 만 메시지를 얻지 못한다고 가정합니다. 그것은 그것이 성공적이라는 것을 의미 할 것이지만, 코드는 바로 멈 춥니 다. 내가 뭘 잘못하고 있는지 아는 사람이 있습니까?

윈도우 서버 2008 R2 x64의, IIS7, PHP 5.3

+0

나는이 문제를 발견했을 때 같은 문제가있어서 다른 질문을 만들 예정입니다. – NeerPatel

+0

몇 가지 차이점은 아파치 대신 PHP 5.4를 사용하고 있지만 같은 문제입니다. 심지어 등록을 취소하고 그것을 테스트했습니다. [ScreenShot 2] (http://screencast.com/t/l1Q9sMxdw) - 그런 다음 [ScreenShot 1] (http://screencast.com/t/vsrv5mpZpN) 불운. 내 코드 - '' – NeerPatel

+0

이 문제를 해결하는 열쇠는 실행중인 PHP 버전입니다. 32 비트 PHP를 사용하는 경우 UniObject COM이 작동합니다. 64 비트 버전의 PHP를 사용하는 경우 UniObjects COM이 작동하지 않습니다. UniObjects COM은 32 비트 전용입니다. –

답변

0

Zuboje는

국제 스펙트럼 편집기 나단 총장의 도움으로 문제를 알아 냈어. 32 비트 버전의 PHP를 다운로드하여 사용하십시오. 당신은 아마 PHP의 64 비트 버전을 가지고 있고 그것은 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 –

관련 문제