vs2015编译的openssl-1.0.2l包含静态库(lib)和动态库(dll)头文件等
vs2015编译的openssl-1.0.2l包含静态库(lib)和动态库(dll)头文件等
代码片段和文件信息
#define APPlink_STDIN 1
#define APPlink_STDOUT 2
#define APPlink_STDERR 3
#define APPlink_FPRINTF 4
#define APPlink_FGETS 5
#define APPlink_FREAD 6
#define APPlink_FWRITE 7
#define APPlink_FSETMOD 8
#define APPlink_FEOF 9
#define APPlink_FCLOSE 10 /* should not be used */
#define APPlink_FOPEN 11 /* solely for completeness */
#define APPlink_FSEEK 12
#define APPlink_FTELL 13
#define APPlink_FFLUSH 14
#define APPlink_FERROR 15
#define APPlink_CLEARERR 16
#define APPlink_FILENO 17 /* to be used with below */
#define APPlink_OPEN 18 /* formally can‘t be used as flags can vary */
#define APPlink_READ 19
#define APPlink_WRITE 20
#define APPlink_LSEEK 21
#define APPlink_CLOSE 22
#define APPlink_MAX 22 /* always same as last macro */
#ifndef APPMACROS_ONLY
# include
# include
# include
static void *app_stdin(void)
{
return stdin;
}
static void *app_stdout(void)
{
return stdout;
}
static void *app_stderr(void)
{
return stderr;
}
static int app_feof(FILE *fp)
{
return feof(fp);
}
static int app_ferror(FILE *fp)
{
return ferror(fp);
}
static void app_clearerr(FILE *fp)
{
clearerr(fp);
}
static int app_fileno(FILE *fp)
{
return _fileno(fp);
}
static int app_fsetmod(FILE *fp char mod)
{
return _setmode(_fileno(fp) mod == ‘b‘ ? _O_BINARY : _O_TEXT);
}
#ifdef __cplusplus
extern “C“ {
#endif
__declspec(dllexport)
void **
# if defined(__BORLANDC__)
/*
* __stdcall appears to be the only way to get the name
* decoration right with Borland C. Otherwise it works
* purely incidentally as we pass no parameters.
*/
__stdcall
# else
__cdecl
# endif
OPENSSL_Applink(void)
{
static int once = 1;
static void *OPENSSL_ApplinkTable[APPlink_MAX + 1] =
{ (void *)APPlink_MAX };
if (once) {
OPENSSL_ApplinkTable[APPlink_STDIN] = app_stdin;
OPENSSL_ApplinkTable[APPlink_STDOUT] = app_stdout;
OPENSSL_ApplinkTable[APPlink_STDERR] = app_stderr;
OPENSSL_ApplinkTable[APPlink_FPRINTF] = fprintf;
OPENSSL_ApplinkTable[APPlink_FGETS] = fgets;
OPENSSL_ApplinkTable[APPlink_FREAD] = fread;
OPENSSL_ApplinkTable[APPlink_FWRITE] = fwrite;
OPENSSL_ApplinkTable[APPlink_FSETMOD] = app_fsetmod;
OPENSSL_ApplinkTable[APPlink_FEOF] = app_feof;
OPENSSL_ApplinkTable[APPlink_FCLOSE] = fclose;
OPENSSL_ApplinkTable[APPlink_FOPEN] = fopen;
OPENSSL_ApplinkTable[APPlink_FSEEK] = fseek;
OPENSSL_ApplinkTable[APPlink_FTELL] = ftell;
OPENSSL_ApplinkTable[APPlink_FFLUSH] = fflush;
OPENSSL_ApplinkTable[APPlink_FERROR] = app_ferror;
OPENSSL_ApplinkTable[APPlink_CLEARERR] = app_clearerr;
OPENSSL_ApplinkTable[APPlink_FILENO] = app_fileno;
OPENSSL_ApplinkTable[APPlink_OPEN] = _open;
OPENSSL_ApplinkTable[APPlink_READ] = _read;
OPENSSL_ApplinkTable[APPlink_WRITE] = _write;
OPENSSL_ApplinkTable[
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)