gpt4 book ai didi

c++ - 链接到 DLL 的未处理异常

转载 作者:行者123 更新时间:2023-11-30 04:19:43 25 4
gpt4 key购买 nike

链接到我创建的 DLL 时出现问题。抛出的异常是 Unhandled exception at 0x000007FA17461069 (ntdll.dll)。奇怪的是,只有当我在 win32 应用程序而不是 win32 控制台应用程序中链接 DLL 时才会发生这种情况。问题似乎与线程创建有关。

调用栈如下:

msvcr110d.dll!_callthreadstartex() Line 354            C
msvcr110d.dll!_threadstartex(void * ptd) Line 337 C

DLL 包含 ACE proactor 框架的实现,使用操作系统 I/O 完成端口。它在控制台应用程序中运行良好,但在 win32 窗口应用程序中运行不佳。

如有任何帮助,我们将不胜感激。

编辑:根据以下评论的要求:

抛出异常的代码行是ACE_Service_Config::open(GetCommandLineA());

我使用 ACE 配置框架,因此我使用 svc.conf 文件动态加载我的 DLL。这是唯一需要写入控制台程序的 main 函数的代码行。

我尝试在捕获到 WM_CREATE 消息后写下这一行。它崩溃了。

最佳答案

当您创建控制台应用程序时,ACE 将重新定义 main 以确保它得到正确初始化。在制作 win32 windows 应用程序时,这个技巧不起作用。您必须自己调用 ACE::init() 和 ACE::fini(),有关如何执行此操作的示例,请参见 ACE_wrappers/tests/ACE_Init_Test.cpp。

关于c++ - 链接到 DLL 的未处理异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15673625/

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