Lorsque je tente d'exporter la fonction suivante comme dll:Comment exporter la fonction C++ en tant que dll qui provoque une exception?
extern "C" __declspec(dllexport) void some_func()
{
throw std::runtime_error("test throwing exception");
}
Visual C++ 2008 me donne l'avertissement suivant:
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
Je dois extern "C" parce que j'utilise Qt QLibrary pour charger la DLL et résoudre le nom de la fonction. Sans extern "C", il ne trouve pas la fonction some_func().
merci pour le conseil. Cependant, y a-t-il un autre moyen de contourner cela? Je veux juste exporter une fonction C++. – sivabudh
Ensuite, n'utilisez pas extern "C", utilisez plutôt un fichier .def pour forcer le nom exporté à être le nom non décoré (ou ce que vous voulez). –
Sinon, vous pouvez essayer et comprendre comment obtenir QT pour charger le nom décoré C++. –