значение:
__declspec(dllexport) экспорт в dll
__declspec(dllimport) импорт из dll
решенная проблема:
Примите во внимание следующие требования: используйте один метод, один из которых — поставщик, другой — пользователь, а интерфейс между ними — файл заголовка. Заголовочный файл объявляет метод, который должен быть объявлен как __declspec(dllexport) в провайдере и __declspec(dllimport) в пользователе.
Пример:
#ifndef _INC_MYSOCKETCLIENT_H_
#define _INC_MYSOCKETCLIENT_H_
#define Import_SSS
#ifdef Import_SSS
#define API _declspec(dllexport)
#else
#define API _declspec(dllimport)
#endif
#ifdef _cplusplus//extern"C" 来告诉编译器:这是一个用C写成的库文件,请用C的方式来链接它们。
extern "C" {
#endif // _cplusplus
API//导出函数,让外界调用。
int socketClient_Init(void **handle);
API
int socketClient_Send(void *handle, unsigned char *buf, int buflen);
API
int socketClient_Recv(void *handle, unsigned char *buf, int *buflen);
API
int socketClient_Destory(void *handle);
#ifdef _cplusplus
}
#endif // _cplusplus
#endif //_INC_MYSOCKETCLIENT_H_
Определение макроса, существующее в Import_SSS, — это поставщик, а если оно не включено, то это пользователь. В окне используйтеLoadLibraryПри одинаковой загрузке dll можно использовать оба.