Странная ошибка при вызове Loadreportfromfile
Итак:
Используется VC++ VisualStudio 2005
и FR Studio 4.8.221
Сделано стандартное открытие отчета из файла в диалоге MFC:
инициализация такая, всё стандартно:
вызов так:
Однако в дебуге Win32 при вызове LoadReportFromFile вываливает ошибку
в файле fastreport3.tli в участке кода
Далее в итоге получаем _hr = S_OK - и отчет открывается чудесно.
Сам отчет кроме отключенного поля Connected ничем не примечателен - хоть даже взять простейший гладкий отчет с одним полем.
В FR студии открывается без проблем. Кстати счас проверил, с включенным полем Connected тоже выдает в дебуге такое же исключение.
Вобщем ввиду того, что в релизе все работает, то проблема не супер критичная, но все же раз выдает екзепшен, то что-то видимо
идет не так, и это вызывает опасения - мало ли как и где вылезет.
Если вдруг я делаю что не так, то скажите пожалуйста что не так, и как устранить это исключение.
Заранее спасибо!
ЗЫ: Если нужна дополнительная информация для прояснения проблемы, готов предоставить, спрашивайте, если что не ясно. Старался написать максимально понятно, но мало ли.
Используется VC++ VisualStudio 2005
и FR Studio 4.8.221
Сделано стандартное открытие отчета из файла в диалоге MFC:
инициализация такая, всё стандартно:
class AFX_EXT_CLASS CFastReportDlg
{
public:
CFastReportDlg ();
~CFastReportDlg (void);
IfrxReportPtr pReport; // Fast Report object
.....
IfrxReportPtr p(__uuidof(TfrxReport));
pReport = p;
.....
вызов так:
void CFastReportDlg::ShowReport(CString sReportName, CString sSQL, CString sConnect)
{
try
{
TRACE(sSQL + CString("\r\n"));
HRESULT hr;
hr = pReport->ClearReport ();
hr = pReport->LoadReportFromFile(sReportName.GetBuffer());
Однако в дебуге Win32 при вызове LoadReportFromFile вываливает ошибку
First-chance exception at 0x7c812afb in ProgrammaD.exe: 0x0EEDFADE: 0xeedfade.
в файле fastreport3.tli в участке кода
#pragma implementation_key(768)
inline HRESULT FastReport::IfrxReport::LoadReportFromFile ( _bstr_t szFileName ) {
HRESULT _hr = raw_LoadReportFromFile(szFileName);
if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
return _hr;
}
Далее в итоге получаем _hr = S_OK - и отчет открывается чудесно.
Сам отчет кроме отключенного поля Connected ничем не примечателен - хоть даже взять простейший гладкий отчет с одним полем.
В FR студии открывается без проблем. Кстати счас проверил, с включенным полем Connected тоже выдает в дебуге такое же исключение.
Вобщем ввиду того, что в релизе все работает, то проблема не супер критичная, но все же раз выдает екзепшен, то что-то видимо
идет не так, и это вызывает опасения - мало ли как и где вылезет.
Если вдруг я делаю что не так, то скажите пожалуйста что не так, и как устранить это исключение.
Заранее спасибо!
ЗЫ: Если нужна дополнительная информация для прояснения проблемы, готов предоставить, спрашивайте, если что не ясно. Старался написать максимально понятно, но мало ли.
Комментарии
Там обычная MFC-строка. Содержит полный путь к файлу.
Пробовал и конвертить в _bstr_t и в подобное, что совместимо. Пробовал в полном пути \ заменять на \\ (стандартный приёмчик). Вобщем-то та же картина. Пробовал и простой путь, без пробелов и премудростей, и имена 8.3 - всё одно.
Выкидывает описанное исключение- и открывает после него отлично отчет (это в дебуге). В релизе соотвественно вообше екзепшена
не выскакивает.