黒翼猫はWin9x で動くOpenSSL 1.1.0を作れるか?その5

黒翼猫はWin9x で動くOpenSSL 1.1.0を作れるか?その1

黒翼猫はWin9x で動くOpenSSL 1.1.0を作れるか?その2

static void unimplemented(void)
{
    OPENSSL_showfatal(sizeof(TCHAR) == sizeof(char) ? "%s\n" : "%S\n", msg);
    TerminateProcess(GetCurrentProcess(), 1);
}

void OPENSSL_Uplink(volatile void **table, int index)
{
    static HMODULE volatile apphandle = NULL;
    static void **volatile applinktable = NULL;
    int len;
    void (*func) (void) = unimplemented;
    HANDLE h;
    void **p;

    do {
        len = _sntprintf(msg, sizeof(msg) / sizeof(TCHAR),
                         _T("OPENSSL_Uplink(%p,%02X): "), table, index);
        _tcscpy(msg + len, _T("unimplemented function"));

        if ((h = apphandle) == NULL) {
           if ((h = GetModuleHandle(NULL)) == NULL) {
                apphandle = (HMODULE) - 1;
                _tcscpy(msg + len, _T("no host application"));
                break;
            }
            apphandle = h;
        }

トレースしてみると、どうもここで プロセス強制終了されてるらしい。なんでや!
GetModuleHandle(NULL) が NULLのはずないし…。

Windows 95 で動くプログラムを作る (VS2008編) - Programming Field

※なお、GetModuleHandleW関数自体はWindows 95でも定義はされていますが、未実装なために常にNULLを返すので障害になっています。
(・ω・)ぶほっ(吐血)

試しに、GetModuleHandle(NULL) を GetModuleHandleA(NULL)にしてみた
とりあえず、起動してバージョンは返すようになった ((((・ω・))))

接続テスト
4294617269:error:2406C06E:random number generator:RAND_DRBG_instantiate:error retrieving entropy:crypto\rand\drbg_lib.c:342:
4294617269:error:2406B072:random number generator:RAND_DRBG_generate:in error state:crypto\rand\drbg_lib.c:588:
4294617269:error:2406C06E:random number generator:RAND_DRBG_instantiate:error retrieving entropy:crypto\rand\drbg_lib.c:342:
4294617269:error:2406C06E:random number generator:RAND_DRBG_instantiate:error retrieving entropy:crypto\rand\drbg_lib.c:342:
4294617269:error:2406B072:random number generator:RAND_DRBG_generate:in error state:crypto\rand\drbg_lib.c:588:
4294617269:error:2406C06E:random number generator:RAND_DRBG_instantiate:error retrieving entropy:crypto\rand\drbg_lib.c:342:
4294617269:error:2406B072:random number generator:RAND_DRBG_generate:in error state:crypto\rand\drbg_lib.c:588:
4294617269:error:2406C06E:random number generator:RAND_DRBG_instantiate:error retrieving entropy:crypto\rand\drbg_lib.c:342:
4294617269:error:2406B072:random number generator:RAND_DRBG_generate:in error state:crypto\rand\drbg_lib.c:588:
4294617269:error:2406C06E:random number generator:RAND_DRBG_instantiate:error retrieving entropy:crypto\rand\drbg_lib.c:342:
4294617269:error:2406C06E:random number generator:RAND_DRBG_instantiate:error retrieving entropy:crypto\rand\drbg_lib.c:342:
4294617269:error:2406B072:random number generator:RAND_DRBG_generate:in error state:crypto\rand\drbg_lib.c:588:
4294617269:error:2406C06E:random number generator:RAND_DRBG_instantiate:error retrieving entropy:crypto\rand\drbg_lib.c:342:
4294617269:error:2406B072:random number generator:RAND_DRBG_generate:in error state:crypto\rand\drbg_lib.c:588:
4294617269:error:140A9041:SSL routines:SSL_CTX_new:malloc failure:ssl\ssl_lib.c:3101:

うにゅー (・ω・) 。o  (これは困った)

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です