본문 바로가기

툴-팁

[번역] 32-COM 오브젝트를 64비트 머신에서 생성할 때, 액티브X 컴포넌트가 오브젝트를 생성하지 못한다.

반응형
http://blogs.msdn.com/b/helloworld/archive/2007/12/12/activex-component-can-t-create-object-when-creating-a-32-com-object-in-a-64-bit-machine.aspx

ActiveX component can't create object, when creating a 32-COM object in a 64-bit machine

32-COM 오브젝트를 64비트 머신에서 생성할 때, 액티브X 컴포넌트가 오브젝트를 생성하지 못한다.


  HelloWorld 12 Dec 2007 2:26 AM
  번역 2011년 1월 6일

I had two posts to resolve an issue with applications that use a 32-bit COM object in a 64-bit OS. Workaround for executable, and ASP.Net.

64비트 운영체제에서 32비트 COM 오브젝트를 사용할 때 발생하는 이슈에 대해 두 개의 포스팅을 했다. 실행파일과 ASP.Net 에 대한 워커라운드.

I recently helped someone who had the same problem, but with a VB Script application, executed with cscript.exe. This VB script application uses a 32-bit COM object and failed to run on a 64-bit OS. The error, Microsoft VBScript runtime error: ActiveX component can't create object: 'XXXXXX'.

최근 같은 문제를 겪는 한 사람을 도운 적이 있다. 그러나, 이번에는 cscript.exe 로 실행하는 VB 스크립트 응용프로그램이었다. 이 VB 스크립트는 32비트 COM 오브젝트를 사용했으며, 64비트 운영체제에서 실행했으나 실패했다. 에러는 :  Microsoft VBScript runtime error: ActiveX component can't create object: 'XXXXXX' 였다.

To fix the issue, the script must be executed with the right executable. There are two cscript.exe in the 64-bit OSes. One is located at %WINDOWS%\System32, and the second one is located at %WINDOWS%\SysWOW64.

이 문제를 해결하기 위해서, 스크립트는 올바른 실행파일로 실행되야 한다. 64비트 운영체제에는 두 개의 cscript.exe 가 있다. 하나는 %WINDOWS%\System32 에 있고, 다른 하나는 %WINDOWS%\SysWOW64 에 존재한다.

The one under System32, is a 64-bit version. The one under SysWOW64 is the 32-bit version. Run the VBS application using the 32-bit application.

System32 에 있는 것은 64비트 버전이다. SysWOW64 아래에 있는 것은 32비트 버전이다. VBS 응용프로그램을 32비트 응용프로그램으로 실행시킨다.

Why System32 contains 64-bit binaries, and SysWOW64 contains 32-bit is another story, but there is a very good reason behind it, backward compatibility. :)

왜 System32 에 64비트 바이너리가 있고, SysWOW64 에 32비트용이 있는지는 또 다른 문제이지만, 거기엔 그럴만한 이유가 있다, 하위호환성이라는 :).

728x90