operator long*()
{
_ASSERTE(vt!= VT_UNKNOWN);
_ASSERTE(vt!= VT_DISPATCH);
_ASSERTE(vt!= (VT_UNKNOWN|VT_BYREF));
_ASSERTE(vt!= (VT_DISPATCH|VT_BYREF));
if (vt == (VT_UI4|VT_BYREF)) return (long*)V_UI4REF(this);
else if (vt == VT_UI4) return (long*)&(V_UI4(this));
return NULL;
}
Ошибки в файлах библиотек при создании DCOM приложения
Пользуясь стандартным Wizard-ом, сделал DCOM обертку, набил туда пару функций, всё протестировал - работает. Клиент, реализующий достаточно полное функциональное тестирование - отрабатывает полностью.
Однако при компиляции типа "Release" появляются следующие ошибки в файлах, которые я даже не правил.
[C++ Warning] utilcls.h(1149): W8027 Functions containing do are not expanded inline
Кидает сюда. Таких ошибок - только одна.
Код:
[C++ Warning] comdef.h(124): W8026 Functions with exception specifications are not expanded inline
Кидает сюда (схожих ошибок около 20ти в этом файле)
Код:
inline _com_error::_com_error(HRESULT hr,
IErrorInfo* perrinfo,
bool fAddRef) throw()
: m_hresult(hr), m_perrinfo(perrinfo), m_pszMsg(NULL)
{
if (m_perrinfo != NULL && fAddRef) {
m_perrinfo->AddRef();
}
}
IErrorInfo* perrinfo,
bool fAddRef) throw()
: m_hresult(hr), m_perrinfo(perrinfo), m_pszMsg(NULL)
{
if (m_perrinfo != NULL && fAddRef) {
m_perrinfo->AddRef();
}
}
Решения не нашел в инете (оффтоп: в гугле при поиске в рунете находит 2 сайта на китайском)) ).
Вы знаете, о чем это они и как это исправить? Насколько я понимаю, их быть не должно...
Я парюсь потому, что приложение любило упасть у меня, когда я использовал данные округленные до 4 байт (это нужно из-за моих требований), т.к. STL требует округления до 8ми. Сыпались warnings. Это я исправил. А перечисленные выше warnings я исправить не сумел. При этом они подобным образом могут валить приложение. Так что это очень важно, понимать, откуда они взялись и как с ними бороться.
Как же быть?