Почему происходит сбой моего приложения при вызове файла Excel 2016 через ShellExecute?

Почему происходит сбой моего приложения при вызове файла Excel 2016 через ShellExecute?

Минимальный пример:

int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
int nRetCode = (int)ShellExecute(NULL, NULL, _T("c:\\temp\\MyExcel.xlsx"), NULL, NULL, SW_SHOWNORMAL);
}
  • Вылетает только в файле Excel 2016.xlsx.
  • Тот же код работает с файлом Excel 2013 .xlsx (т. Е. Только с установленным Excel 2013).
    то есть).
  • Тот же код работает с файлом Excel 2016.xls (с установленным Excel 2016)
  • Тот же код работает в файле Excel 2016.xlsx, когда имя изменяется на файл .xls (с установленным Excel 2016)
  • Excel устанавливается с помощью ClickToRun (я думаю, что это единственный способ установить его)

От просмотра событий:

<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Application Error" />
<EventID Qualifiers="0">1000</EventID>
<Level>2</Level>
<Task>100</Task>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime="2015-10-22T15:22:13.000000000Z" />
<EventRecordID>3393</EventRecordID>
<Channel>Application</Channel>
<Computer>xxx.se</Computer>
<Security />
</System>
<EventData>
<Data>ShellExecuteTest.exe</Data>
<Data>0.0.0.0</Data>
<Data>5628ff16</Data>
<Data>msoshext.dll</Data>
<Data>16.0.4229.1029</Data>
<Data>56067af7</Data>
<Data>c0000005</Data>
<Data>00078e8c</Data>
<Data>e8c</Data>
<Data>01d10cdd6d71246d</Data>
<Data>C:\xxx\ShellExecuteTest.exe</Data>
<Data>C:\Program Files (x86)\Microsoft Office\root\VFS\ProgramFilesCommonX86\Microsoft Shared\Office16\msoshext.dll</Data>
<Data>ab37d64c-78d0-11e5-8261-005056ae16e5</Data>
<Data>
</Data>
<Data>
</Data>
</EventData>
</Event>

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector