VC++2005からExcel2007の操作でこまっております。
以下のSaveAsのところで、例外が発生して終了してしまいます。
Excel2003だと同じソースで動いたのですが(import以外は変えて)
2007だと何か変更が必要でしょうか。
-------------------
#include stdafx.h
#include docobj.h
#import C:\Program Files\Common Files\Microsoft Shared\Office12\MSO.dll
no_namespace rename(DocumentProperties, DocumentPropertiesXL)
#import C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\VBE6EXT.OLB
no_namespace
#import C:\Program Files\Microsoft Office\Office12\EXCEL.EXE rename
(DialogBox, DialogBoxXL) rename(RGB, RBGXL) rename
(DocumentProperties, DocumentPropertiesXL) no_dual_interfaces
using namespace Excel;
int _tmain(int argc, _TCHAR* argv[])
{
::CoInitialize(NULL);
{
_ApplicationPtr pXL;
pXL.CreateInstance(LExcel.Application);
WorkbooksPtr pBooks = pXL->Workbooks;
_WorkbookPtr pBook = pBooks->Open(D:\\DLLTEST\\test.xlsx);
pBook->SaveAs
(D:\\DLLTEST\\test2.xls, ::xlExcel9795, ::vtMissing, ::vtMissing, ::vtMissing
, ::vtMissing, ::xlNoChange,
::vtMissing, ::vtMissing, ::vtMissing, ::vtMissing, ::vtMissing);
pBook->Close();
pXL->Quit();
}
::CoUninitialize();
return 0;
}
-------------------------
デバッグで実行すると↓で落ちています。
comip.h
void _Release() throw()
{
if (m_pInterface != NULL) {
m_pInterface->Release(); ← ここ
}
}
>以下のSaveAsのところで、例外が発生して終了してしまいます。
例外は_com_error型でもcatchできないでしょうか?
例外の内容が調べられれば原因がわかるかもしれません。