Когда я пытаюсь экспортировать следующую функцию как dll:
extern "C" __declspec(dllexport) void some_func()
{
throw std::runtime_error("test throwing exception");
}
Visual C++ 2008 дает мне соблюдающее предупреждение:
1>.\SampleTrainer.cpp(11) : warning C4297: 'some_func' : function assumed not to throw an exception but does
1> The function is extern "C" and /EHc was specified
Мне нужно экстерну "C", потому что я использую спокойный QLibrary, чтобы загрузить dll и разрешить имя функции. Без экстерна "C" это не может найти some_func () функцией.
Если вы полны решимости делать то, что компилятор вам предупреждает, почему бы не просто подавить предупреждение?
#pragma warning(disable: 4247)