Если вам нужно передать rfeference для функции, нет необходимости создавать промежуточное именованное значение:
CRSAPublicKey* publicKey = .... // initialise pointer somehow
iEncryptor = CRSAPKCS1v15Encryptor::NewL( * publickey );
CRSAPublicKey* publicKey;
const CRSAPublicKey &iRSAPublicKey= *publicKey;
iEncryptor = CRSAPKCS1v15Encryptor::NewL(iRSAPublicKey);
Моя проблема во второй строке, потому что я должен передать ссылку на функцию, потому что я создаю ссылку из указателя.
Я не знаю, делаю ли я это правильно или неправильно. Первая строка компилируется, но во второй строке она падает.
Если вам нужно передать rfeference для функции, нет необходимости создавать промежуточное именованное значение:
CRSAPublicKey* publicKey = .... // initialise pointer somehow
iEncryptor = CRSAPKCS1v15Encryptor::NewL( * publickey );
Вы объявляете publicKey
переменную, но никогда ее не инициализируете. Использование неинициализированного указателя легко приводит к KERN-EXEC 3.
чтобы избежать путаницы, вы должны префиксные переменные-члены с помощью i. Это важно, поскольку это позволяет вам гарантировать, что вы уничтожите их соответствующим образом (т. Е. В деструкторе, а не в стеке очистки).
По теме, ваша первая строка кода должна быть чем-то свободным в следующих строках:
CRSAPublicKey* publicKey=CRSAPublicKey::NewLC();