Как экспортировать функцию C++ как dll, который выдает исключение?

Когда я пытаюсь экспортировать следующую функцию как 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 () функцией.

5
задан Jim Fell 15 December 2010 в 15:04
поделиться

1 ответ

Если вы полны решимости делать то, что компилятор вам предупреждает, почему бы не просто подавить предупреждение?

#pragma warning(disable: 4247)
3
ответ дан 14 December 2019 в 13:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: