Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从代码中区分静态dll和动态dll 我现在在C++ VS2010中生成一个DLL文件。我有两个问题,我想知道我当前是否正在生成静态DLL或动态DLL?在我的代码中有一个.def文件,所有导出的函数都在该def文件中编号。此外,我的函数正在使用u declspec(dllexport)导出。_C++_Dll - Fatal编程技术网

从代码中区分静态dll和动态dll 我现在在C++ VS2010中生成一个DLL文件。我有两个问题,我想知道我当前是否正在生成静态DLL或动态DLL?在我的代码中有一个.def文件,所有导出的函数都在该def文件中编号。此外,我的函数正在使用u declspec(dllexport)导出。

从代码中区分静态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)方法将函数放入导出表中,则这并不重要。我建议使用

生成DLL时,您将获得一个动态链接库。因此,独立于生成它的方法,它是动态加载的

但是从cosuming应用程序访问函数的方式不同

使用导入库(yourDllName.LIB)时,加载应用程序时将加载DLL。这提供了类似于使用静态库的外观和感觉

还可以使用LoadLibrary和GetProcAddress获取指向函数的指针。然后可以使用这些指向DLL入口点的指针调用函数


如果您选择模块导出文件(.DEF)或u declspec(dllexport)方法将函数放入导出表中,则这并不重要。我建议使用一种方法避免混淆。

在C++代码中,可以检查定义的符号ydl。< /p>
#ifdef _DLL

我认为,在构建静态库时,不需要为函数指定序号。

*.def文件很重要。如果没有def文件,则存在名称修饰。使用def文件,您可以确保独立于调用约定或调试/发布的未修饰命名。请为-1留下注释。老实说,我不咬人。没有静态dll这样的东西。