Ошибка C2711 при попытке скомпилировать мой проект с использованием crypto ++

Я пытаюсь скомпилировать проект с использованием crypto ++. Мой проект использует clr, и когда я пытаюсь скомпилировать код, я получаю следующие ошибки:

'main' : this function cannot be compiled as managed, consider using #pragma unmanaged

'int main(cli::array<Type> ^)' : managed type or function cannot be used in an unmanaged function

Мой проект использует clr и я использую /MD как библиотека времени выполнения. Я установил те же параметры при компиляции crypto ++.

Редактировать: моя основная функция

     int main(array<System::String ^> ^args)
{
Console::WriteLine(L"Hello World");

// Generate keys
AutoSeededRandomPool rng;

InvertibleRSAFunction params;
params.GenerateRandomWithKeySize( rng, 1536 );

RSA::PrivateKey privateKey( params );
RSA::PublicKey publicKey( params );

std::string plain="RSA Encryption", cipher, recovered;// Encryption
RSAES_OAEP_SHA_Encryptor e( publicKey );

StringSource( plain, true,
new PK_EncryptorFilter( rng, e,
new StringSink( cipher )
) // PK_EncryptorFilter
); // StringSource

// Decryption
RSAES_OAEP_SHA_Decryptor d( privateKey );

StringSource( cipher, true,
new PK_DecryptorFilter( rng, d,
new StringSink( recovered )
) // PK_DecryptorFilter
); // StringSource

assert( plain == recovered );
std::cin.ignore();
return 0;
}

0

Решение

Вы получите эту ошибку, если попытаетесь выполнить любую неуправляемую инструкцию в управляемом коде. Увидеть Вот.

Таких как assert() а также std::string являются родными методами / типами соответственно, что означает, что они имеют дело с необработанными указателями и не подчиняются правилам управляемого C ++. Смешивание такого неуправляемого кода с управляемым кодом может быть достигнуто с помощью PInvoke / DllImport.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]