0

私が試してみました:

while (System::Runtime::InteropServices::Marshal::ReleaseComObject(worksheet_instance) > 0) ;
workbook_instance->Close(true, "Dummy.xlsx", Missing::Value);
while (System::Runtime::InteropServices::Marshal::ReleaseComObject(workbook_instance) > 0) ;
workbook_instance->~Workbook();
exApp_instance->Quit();
exApp_instance->~Application();

ただし、Excelアプリケーションは終了しません(タスクマネージャーに表示されます)。試してみたいと思います

workbook_instance = NULL; 

しかし、それは受け入れられません。なにか提案を?ありがとうございました。

4

1 に答える 1

1

ありがとう@amaldev
最初のリンクから収集されたいくつかのアイデアによると、私は成功しました

try{
    while (System::Runtime::InteropServices::Marshal::ReleaseComObject(ws) > 0) ; 
} catch(...) {} 

wb->Close(false, Missing::Value, Missing::Value); 
try { 
    while (System::Runtime::InteropServices::Marshal::ReleaseComObject(wb) > 0) ; 
} catch(...) {} 

exApp->Quit(); 
try { 
    while (System::Runtime::InteropServices::Marshal::ReleaseComObject(exApp) > 0) ; 
} 
catch(...) {} 

System::GC::Collect(); 
System::GC::WaitForPendingFinalizers();
于 2012-08-31T10:36:24.907 に答える