한컴 오토메이션을 사용하는 어플리케이션 실행시 ‘서버에서 예외 오류가 발생했습니다.’ 라는 메시지 박스가 뜨는 경우가 있었습니다. 메시지 박스를 닫고 해당 어플리케이션을 종료하면 'RPC 서버를 사용할 수 없습니다.'라는 메시지 박스가 뜨는 현상이 있습니다.
이것을 디버깅 모드에서 중단점을 걸고 스탭별로 추적할 때에는 '서버에서 예외 오류가 발생했습니다’라는 메시지는 뜨지 않는데, CHwpObject.h파일내 Open 함수를 호출할 때에 TRUE값을 리턴 하지 않는 현상이 있었습니다(TRUE값이 아닌 ‘-858993460’). 이것 관련하여 먼저 경험 하신 분 있으시면 조언 좀 부탁 드립니다.
한글프로그램이 종료된 후 어떤 액션을 하려는 경우에 발생하지 않나 싶습니다~
안녕하세요.
⓵ 한글 오토메이션을 재등록 해보시면 좋을 것 같습니다.
관리자모드 커맨드창에서
%Install Path%\Hwp.exe /RegServer
⓶ 아래 게시글의 MFC로 작성한 예제가 있습니다.
포럼 게시판 답변을 정리할 때 사용하던 예제 소스인데요.
같은 오류가 발생하는지 확인해보시면 좋을 것 같습니다.
감사합니다.
지금까지 잘 동작하던 것이 한컴오피스 2024를 설치후에 한글 오토메이션을 등록하면 그런 현상이 생깁니다.
한컴오피스 2024를 제거하고 한컴오피스 2022로 되돌아가서 한글 오토메이션을 등록하면 그런 현상이 발생하지 않습니다. 이런 현상으로 봐서 한컴오피스 2024 오토메이션쪽에 문제인지 하는 생각도 듭니다만…
한글 오토메이션을 다시 등록해도 같은 결과를 보이는 군요. T_T
개발언어는 C++, MFC환경입니다.
저 역시 오토메이션 확인은 한컴오피스 2024 + MFC 로 하고 있습니다.
혹시 가능하시다면 소스 코드나 빌드한 모듈을 전달주시면 원인을 확인해보겠습니다.
감사합니다.
그건 제 권한을 뛰어 넘는 사항이라 곤란할 것 같습니다. T_T
소스 코드 소유가 제 것이 아니라서요.
혹시 CHwpObject.h파일내 Open 함수를 호출할 때에 ‘-858993460’값을 리턴 하는 경우는 어떠한 때 일지 알 수 있을까요?
안녕하세요 ^^
혹시 디버깅 모드로 하지 않고 로그를 남겨 어느 API를 호출시 서버 예외 오류가 발생하는지 알수있을까요~!?
제가 봤을땐 한글 오토메이션 개체가 정상적으로 생성이 되지 않은것 같습니다.
Open 함수의 경우 0또는 1만 리턴을 하게됩니다.
아래코드는 MFC로 한글 오토메이션 생성후 화면을 보이게 하고 파일을 Open하는 코드입니다.
해당 코드로 실행시 빈한글이 생성되는지 확인을 해봐야할것 같습니다.
감사합니다.
CHwpObject myHwpObj;
if (myHwpObj.CreateDispatch(L"HwpFrame.HwpObject.2") == TRUE) {
myHwpObj.RegisterModule(L"FilePathCheckDLL", CComVariant(L"FilePathCheckModule"));
CXHwpWindows xWindows;
xWindows = myHwpObj.get_XHwpWindows();
CXHwpWindow xWindow;
xWindow = xWindows.get_Active_XHwpWindow();
xWindow.put_Visible(1);
myHwpObj.Open(filepath, CComVariant(L""), CComVariant(L"");
}
안녕하세요?
릴리즈 모드에서 로그를 남겨 가면서 추적을 해봤습니다.
CHwpObjec.h, CreateSet()함수를 호출 이후에 로그를 찍어내지 못하는 것으로 봐서
CreateSet()함수를 호출 하면서 발생하는 것 같습니다.
다음과 같이 CreateSet()함수를 호출 하고 있습니다.
CreateSet(_T(“EngineProperties”));
안녕하세요 ^^
저는 2024에서 해당 셋을 생성해도 아래와 같이 정상적으로 실행되고 있습니다.
혹시 제가 위에 작성했던 샘플코드 실행해보셨을까요? 한번 해당 코드를 실행후 정상적으로 화면이 뜨고 open에 파일경로를 입력하여 파일이 열리는지 테스트 부탁드립니다.
의심되는건 asdf님의 PC에서 2024 오토메이션이 정상적으로 실행되지 않아 HwpObject 자체가 만들어 지지 않아 api에 대한 실행 오류가 발생하지 않을까 싶습니다.
안녕하세요.
리턴값 ‘-858993460’는 0xcccccccc로 이는 초기화 되지 않은 스택 메모리를 가리킵니다.
오토메이션 개체가 제대로 사용되지 않아서 변수가 제대로 초기화 되지 않았고 이 값을 확인하신게 아닌가 싶습니다.
감사합니다.
CHwpObject.h에서 문제가 되는 함수의 dispid의 값이 차이는 없는지도 확인해보시면 좋을 것 같습니다.
LPDISPATCH CreateSet(LPCTSTR setidstr) {
...
InvokeHelper(0x7596, ...)
}