Rus*_*sel 7 c++ import dll export visual-studio
我在Visual Studio 2005及更高版本中有关于DLL构建/链接的问题.基本上我的理解和经验是这样的:
要构建DLL,我指定项目属性来构建DLL,然后我在__declspec(dllexport)前面的任何我想从DLL公开暴露的函数或成员.构建项目将生成DLL,Lib和头文件,可以像API或其他东西一样进行部署.
另一方面,要让您的其他已编译的可执行应用程序动态链接到DLL并使用其功能,您只需要让您的可执行项目包含头文件并链接到构建DLL时创建的小型lib文件.只要编译的应用程序可以找到DLL,一切都会工作.
这是我的经验,也是Microsoft DLL构建教程如何描述MSDN上的所有内容.我想知道:这是标准做法吗?你什么时候需要在任何地方使用__declspec(dllimport)?我错过了什么吗?
谢谢!
tro*_*foe 13
是的,您将使用__declspec(dllimport),并且您通常有一个宏来控制源文件是导出(如果它是您的DLL的一部分)还是导入(如果它是使用 - 可执行文件的一部分)符号.
在您的DLL中,您可以将清单常量设置为某种类型的构建设置,比如说"BUILDING_MY_DLL",然后在头文件中创建这样的宏:
#ifdef BUILDING_MY_DLL
#define MY_DLL_EXPORT __declspec(dllexport)
#else
#define MY_DLL_EXPORT __declspec(dllimport)
#endif
Run Code Online (Sandbox Code Playgroud)
然后装饰你导出的函数,如下所示:
MY_DLL_EXPORT int func(int y);
Run Code Online (Sandbox Code Playgroud)
您也可以这样导出整个类:
class MY_DLL_EXPORT InterestingClass
{
...
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5209 次 |
| 最近记录: |