Ошибка другого соединения.Перезаписать функцию Microsoft CNG Bcrypt в новой DLL - PullRequest
0 голосов
/ 02 марта 2019

Я пытаюсь перезаписать функцию BCryptEnumAlgorithms из bcrypt.h, но я получаю это ошибка

Ошибка C2375 'BCryptEnumAlgorithms': переопределение;другая связь NewCNGDLL

Моя цель - переписать некоторые функции из CNG Bcrypt и создать новый файл DLL

Мои файлы .h и .cpp из моей .dll:

NewCNGDLL.h

    #pragma once
#ifdef NEWCNGDLL_EXPORTS
#define MYLIB_API __declspec(dllexport)
#else
#define MYLIB_API __declspec(dllimport)
#endif
#include"shared/bcrypt.h"

/* Test Function
*/
extern "C" MYLIB_API int AddInt(int a, int b);



extern "C"
    MYLIB_API 
    NTSTATUS
    WINAPI
    BCryptEnumAlgorithms(
            ULONG   dwAlgOperations,
           ULONG   *pAlgCount,
           BCRYPT_ALGORITHM_IDENTIFIER **ppAlgList,
            ULONG   dwFlags);

NewCNGDLL.cpp

// NewCNGDLL.cpp : Defines the exported functions for the DLL application.
//
#pragma once
#include "stdafx.h"
#include"NewCNGDLL.h"
#include<stdio.h>

int AddInt(int a, int b)
{
    return a + b;
}



NTSTATUS
WINAPI
BCryptEnumAlgorithms(
        ULONG   dwAlgOperations,
       ULONG   *pAlgCount,
       BCRYPT_ALGORITHM_IDENTIFIER **ppAlgList,
        ULONG   dwFlags)
{
    NTSTATUS status = 0;
    printf("Success\n");


}
  • Функция int AddInt(int a, int b) хорошо работает
  • В bcrypt.h BCryptEnumAlgorithms выглядит так

    Must_inspect_result_ NTSTATUS WINAPI BCryptEnumAlgorithms ( In ULONG dwAlgOperations, Out ULONG * pAlgCount, Out 10 10PALG_BRIG_PL_BL_PG_P_L_P_LIF_L_P_LIF_P_C_LIF_P_LIF_B_PY_BR_C_PG* In ULONG dwFlags);

Я попытался скопировать и вставить определение функции из bcrypt.h в мою DLL, но я все еще получаю эту ссылку ошибка

  • Я использую Cryptographic Provider Development Kit от Microsoft
  • Когда я пытаюсь использовать функции CNG, не пытаясь перезаписать, он отлично работает

Есть идеи, как ее решить?

...