gpt4 book ai didi

c++ - 如何将 C++ 函数导出为引发异常的 dll?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:27:23 26 4
gpt4 key购买 nike

当我尝试将以下函数导出为 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

我需要 extern "C"因为我使用 Qt QLibrary 加载 dll 并解析函数名称。如果没有 extern "C",它就找不到 some_func() 函数。

最佳答案

据我所知,如果您需要可以抛出的“C”函数,则必须使用 /EHs。看到这个:/EH (Exception Handling Model) .您需要在 VisualStudio 项目中进行设置。

相反,/EHc 告诉编译器假设 extern C 函数永远不会抛出 C++ 异常。你的编译器提示你的 void some_func() 抛出错误。

关于c++ - 如何将 C++ 函数导出为引发异常的 dll?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2135036/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com