【问题标题】:dllmain function and exported function runs as threads or as a separate processes?dllmain 函数和导出函数作为线程运行还是作为单独的进程运行?
【发布时间】:2012-04-07 13:02:06
【问题描述】:

这更多是概念性问题,可能相当基本,我并没有真正找到了解 dll 的好资源,

我需要创建 dll(加载时动态链接),它需要 function1 在加载 dll 时启动并在后台运行 一直以来,

虽然function2需要导出,但会被应用程序调用多次,

function1提供了需要在function2中使用的对象,

我打算在导出函数2时使用函数1作为入口函数(dllmain)。

作为系统调用的dllmain函数,而应用程序调用的导出函数,它们是作为两个线程运行还是作为两个单独的进程运行?

如上所述使用 dllmain 和 export 来完成我的需要是否正确?

【问题讨论】:

  • 键盘上的 Shift 按钮有什么问题?这是不可读的。

标签: visual-c++ dll dllexport entry-point


【解决方案1】:

Jeffrey Richter 的“Advanced Windows”是了解 DLL 的好地方。

在你的情况下,这样的事情就可以完成。

BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved)
{
   if (fdwReason == DLL_PROCESS_ATTACH)
   {
       //start thread with function1()
       begin_thread_ex(..., &function1, ....)
   }
}

__declspec(dllexport) function2()
{
    ....
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-15
    • 1970-01-01
    • 1970-01-01
    • 2017-05-07
    • 1970-01-01
    相关资源
    最近更新 更多