Проблема преобразования дескриптора - PullRequest
0 голосов
/ 16 июня 2009
CRSAPublicKey* publicKey;

const CRSAPublicKey &iRSAPublicKey= *publicKey;

iEncryptor = CRSAPKCS1v15Encryptor::NewL(iRSAPublicKey);

Моя проблема во второй строке, потому что я должен передать ссылку на функцию, для этого я создаю ссылку из указателя.

Я не знаю, правильно ли я это делаю или нет. Первая строка компилируется, но во второй она падает.

Ответы [ 3 ]

4 голосов
/ 16 июня 2009

Если вам нужно передать ссылку на функцию, нет необходимости создавать промежуточное именованное значение:

CRSAPublicKey* publicKey = .... // initialise pointer somehow

iEncryptor = CRSAPKCS1v15Encryptor::NewL( * publickey );
2 голосов
/ 16 июня 2009

Вы объявляете переменную publicKey, но никогда не инициализируете ее. Использование неинициализированного указателя легко приводит к KERN-EXEC 3.

0 голосов
/ 04 августа 2009

, чтобы избежать путаницы, вы должны только ставить переменные-члены перед i. Это важно, так как позволяет вам гарантировать, что вы уничтожите их соответствующим образом (то есть в деструкторе, а не в стеке очистки).

По теме, ваша первая строка кода должна выглядеть примерно так:

CRSAPublicKey* publicKey=CRSAPublicKey::NewLC();
...