从代码中区分静态dll和动态dll 我现在在C++ VS2010中生成一个DLL文件。我有两个问题,我想知道我当前是否正在生成静态DLL或动态DLL?在我的代码中有一个.def文件,所有导出的函数都在该def文件中编号。此外,我的函数正在使用u declspec(dllexport)导出。
生成DLL时,您将获得一个动态链接库。因此,独立于生成它的方法,它是动态加载的 但是从cosuming应用程序访问函数的方式不同 使用导入库(yourDllName.LIB)时,加载应用程序时将加载DLL。这提供了类似于使用静态库的外观和感觉 还可以使用LoadLibrary和GetProcAddress获取指向函数的指针。然后可以使用这些指向DLL入口点的指针调用函数从代码中区分静态dll和动态dll 我现在在C++ VS2010中生成一个DLL文件。我有两个问题,我想知道我当前是否正在生成静态DLL或动态DLL?在我的代码中有一个.def文件,所有导出的函数都在该def文件中编号。此外,我的函数正在使用u declspec(dllexport)导出。,c++,dll,C++,Dll,生成DLL时,您将获得一个动态链接库。因此,独立于生成它的方法,它是动态加载的 但是从cosuming应用程序访问函数的方式不同 使用导入库(yourDllName.LIB)时,加载应用程序时将加载DLL。这提供了类似于使用静态库的外观和感觉 还可以使用LoadLibrary和GetProcAddress获取指向函数的指针。然后可以使用这些指向DLL入口点的指针调用函数 如果您选择模块导出文件(.DEF)或u declspec(dllexport)方法将函数放入导出表中,则这并不重要。我建议使用
如果您选择模块导出文件(.DEF)或u declspec(dllexport)方法将函数放入导出表中,则这并不重要。我建议使用一种方法避免混淆。在C++代码中,可以检查定义的符号ydl。< /p>
#ifdef _DLL
我认为,在构建静态库时,不需要为函数指定序号。*.def文件很重要。如果没有def文件,则存在名称修饰。使用def文件,您可以确保独立于调用约定或调试/发布的未修饰命名。请为-1留下注释。老实说,我不咬人。没有静态dll这样的东西。