Afxdaoterm何时使用

Afxdaoterm when to use

本文关键字:何时使 Afxdaoterm      更新时间:2023-10-16

我有一个 dao 数据库,它在单独的 dal 中初始化,即所有的 ado 和 dao 都有单独的 dll。

我出于某种目的创建了一个 dll,并使用了这个 dll 并初始化 dabase,它起作用了。

我创建了一个 ocx 并初始化这个数据库,它不起作用,我尝试在退出实例 afxdaoterm 中调用。

我的疑问是我们必须在哪里称呼 afxdaoterm ?我在很多地方启动了这个数据库..我们可以叫 afxdaoterm I'n destuctor ..它崩溃了几次..

我们在哪里必须称呼 afxdaoterm ?

根本不需要调用AfxDaoTerm!

当调用 AfxDaoInit 时,会在 CWinApp 中设置一个状态,当调用 CWinApp:ExitInstance 时,将调用 AfxDaoTerm。

所以主要是问题是,你使用的是哪种DLL。常规 DLL 还是扩展 DLL?

在常规 DLL 中,每个 DLL 都有一个 CWinApp 对象。对于扩展 DLL,CWinApp 对象从主进程共享。

即使对于常规DLL,调用AfxDaoTerm,

当AfxDaoInit和AfxDaoTerm可能从不同的线程调用时,常规DLL上也可能会出现问题。检查这一点并尝试防止这种情况。

因为常规 DLL 使用 DllMain 来启动 InitInstance 和 ExitInstance。 应该有一些代码来隔离从使用过程中调用的单独的 Init 和 Uninit 函数中的 Dao 内容。