2010-07-06 3 views
1

자동화를 사용하여 MFC/C++를 사용하여 MS Excel을 제어하는 ​​타사 구형 소프트웨어가 있습니다. 코드는 간단합니다 :Excel 2010을 사용하는 잘못된 클래스 문자열

_ApplicationPtr xl; 
HRESULT hr = xl.CreateInstance("Excel.Application"); 

이것은 Excel 2000, 2002 (XP), 2003 및 2007 이후로 완벽하게 작동했습니다. 그러나 Office 2010을 설치 한 후 CreateInstance 호출이 "잘못된 클래스 문자열"(CO_E_CLASSSTRING)으로 실패합니다. 이 기능을 작동시키기 위해 필요한 특별한 것이 있습니까?

미리 감사드립니다.

답변

1

클래스 문자열, 아마도 마이크로 소프트는 오피스 2010

일반적으로 변경 한 "Excel.Application" 부분, 그것은 "이 Excel.Application" "진짜"값 "Excel9.Application"와 같은 뭔가가, 그리고 최신 버전의 특정 항목을 가리 킵니다. MS가 포인터 항목을 추가하는 것을 중지했거나 레지스트리가 업그레이드에 엉망이 될 가능성이 있습니다.

+0

빠른 응답 주셔서 감사합니다. 필자는 Office 2010 Home & Business 및 소프트웨어 자체 만 설치된 깨끗한 Win7 컴퓨터에서 타사 소프트웨어를 사용해 보았습니다. – JoJoeDad

+0

좋아요, 알아 냈습니다. 새로운 Click-to-run 메서드를 사용하여 Office 2010을 설치했습니다. 기본 옵션을 사용하여 MS 웹 사이트에서 평가판을 다운로드했기 때문입니다. MSI를 사용하여 다운로드 및 설치하자마자 모든 PROGID/CLSID는 이제 레지스트리 (Excel.Application 및 Excel.Application.14)에 있으며 자동화는 잘 작동합니다. – JoJoeDad

+0

안녕하세요 JoJoeDad (인사, 동료 캐나다) - - 클릭 투 런 (click-to-run) 때문에 Office Startter와 같은 소리는 OLE 자동화를 지원하지 않습니다. 이 문제를 해결하기 위해 사무실 사본을 구입/설치했는지 확인할 수 있습니까? 감사! –

관련 문제