Ошибка другого соединения. Перезаписать функцию Microsoft CNG Bcrypt в новой DLL

Я пытаюсь переписать функцию 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(в ULONG dwAlgOperations, Out ULONG * pAlgCount, Out BCRYPT_ALGORITHM_IDENTIFIER ** ppAlgList, в ULONG dwFlags);

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

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

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

0 ответов

Другие вопросы по тегам