Visual c++ dllmain函数和导出函数是作为线程运行还是作为单独的进程运行?

Visual c++ dllmain函数和导出函数是作为线程运行还是作为单独的进程运行?,visual-c++,dll,dllexport,entry-point,Visual C++,Dll,Dllexport,Entry Point,这更多的是概念性的问题,它可能是相当基本的,我并没有找到好的资源来学习dll 我需要创建dll(加载时间动态链接),它需要函数1在加载dll时开始并在后台运行 一直以来, 虽然function2需要导出,但应用程序会多次调用它 function1提供了需要在function2中使用的对象 我计划使用函数1作为入口点函数(dllmain),而使用导出函数2 当系统调用dllmain函数而应用程序调用导出函数时,它们是作为两个线程运行还是作为两个单独的进程运行 同样,使用上面解释的dllmain和e

这更多的是概念性的问题,它可能是相当基本的,我并没有找到好的资源来学习dll

我需要创建dll(加载时间动态链接),它需要函数1在加载dll时开始并在后台运行 一直以来,

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

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

我计划使用函数1作为入口点函数(dllmain),而使用导出函数2

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

同样,使用上面解释的dllmain和export来完成我所需要的功能是否正确?

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()
{
    ....
}

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