mba*_*i23 1 c++ winapi dllexport
我正在写一个将导出函数和类的DLL.但是现在我有一个关于导出函数的问题.
如果我的函数签名如下:
__declspec(dllexport) int fn1(FILE *theFile);
Run Code Online (Sandbox Code Playgroud)
我应该包含所以定义FILE吗?这里的最佳做法是什么?如果我想导出一个接受或返回自定义类型的函数,那么这些类型的头文件是否也应包含在导出的头文件中?
不要转发-dell标准库类型和函数.这就是提供库头的内容.您的文件应该布置为:
#ifndef MYLIBRARY_H
#define MYLIBRARY_H
#ifdef MYLIBRARY_EXPORTS
#define MYLIBRARY_EXPORT __declspec(dllexport)
#else
#define MYLIBRARY_EXPORT __declspec(dllimport)
#endif
// required headers
#include <stdio.h>
// exported/imported functions
MYLIBRARY_EXPORT int fn1(FILE *theFile);
#endif
Run Code Online (Sandbox Code Playgroud)
您的DLL项目是使用已MYLIBRARY_EXPORTS定义的部分或已定义的预处理器宏(可以通过多种方式配置)构建的,并且DLL的使用者不会定义它.
这是MS用于其向导罐装DLL项目生成器的通用布局.考虑在您的项目中也这样做.最重要的是,包括库所需的标准标题,以正确定义它所需要的内容,以及它提供的内容.
| 归档时间: |
|
| 查看次数: |
1421 次 |
| 最近记录: |