Я разрабатываю dll dll С++, который может использоваться приложениями C или С++. Открытые функции dll следующие.
#include <tchar.h>
#ifdef IMPORT
#define DLL __declspec(dllimport)
#else
#define DLL __declspec(dllexport)
#endif
extern "C" {
DLL bool __cdecl Init();
DLL bool __cdecl Foo(const TCHAR*);
DLL bool __cdecl Release();
}
внутренняя реализация этих функций - это классы С++, которые не отображаются, я предполагаю, что используя этот стиль, dll можно использовать либо в приложениях C, либо на С++. Проблема в том, что я не обрабатываю исключение С++ (т.е. Bad_alloc), и я оставил этот материал вызывающему (более высокий уровень). После долгих споров с моими коллегами я должен уловить все исключения и вернуть код ошибки или хотя бы false, потому что в случае приложения C он не может обрабатывать исключения С++? это правда? и что я должен делать в целом? есть ли правило для обработки исключений, если вы разрабатываете компонент, который будет использоваться другой системой.