• 大小: 4.41MB
    文件类型: .7z
    金币: 1
    下载: 0 次
    发布日期: 2023-10-14
  • 语言: 其他
  • 标签: openssl  静态库  

资源简介

openssl,已编译好的动态和静态库

资源截图

代码片段和文件信息

#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[

评论

共有 条评论