Gecko NSModule: ContractIDEntry "nsID const *"? - PullRequest
0 голосов
/ 01 ноября 2010

Я создал аддон FireFox какое-то время и заметил, что он перестал работать на FireFox 3.6. Очевидно, NSGetModule заменяется структурой NSModule, поэтому я должен адаптироваться.Я кодирую свой продукт с помощью Delphi, поэтому мне нужно перенести новый код на Object Pascal.

Если я просматриваю этот код: http://mxr.mozilla.org/mozilla-central/source/xpcom/components/Module.h

, я замечаю, что "cid"свойство структуры ContractIDEntry, определяется как nsID const *

Означает ли это, что в структуре есть указатель на переменную nsID или что значение nsID само является частью структуры?

1 Ответ

3 голосов
/ 01 ноября 2010

Полная декларация такова:

struct ContractIDEntry
{
  const char* contractid;
  nsID const * cid;
};

Так же, как объявление contractid означает, что структура содержит указатель на символ, а не что символ является частью структуры, объявление cid означает, что структура содержит указатель на nsID. Структура не содержит nsID, просто указатель на один.

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

...