Получение имени файла с помощью StandardFileReply - PullRequest
0 голосов
/ 03 октября 2019

Я пытаюсь перенести старый 32-битный код Apple C на 64-битную, и у меня возникает следующая проблема:

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

Тогда определения были:

struct StandardFileReply {
     Boolean       sfGood;
     Boolean       sfReplacing;
     OSType        sfType;
     FSSpec        sfFile;
     ScriptCode    sfScript;
     short         sfFlags;
     Boolean       sfIsFolder;
     Boolean       sfIsVolume;
     long          sfReserved1;
     short         sfReserved2;
 };

struct FSSpec {
   short vRefNum;
   long parID;
   StrFileName name;
};
typedef struct FSSpec FSSpec;

Так что я мог легко получить доступ к sfr.sfFile.name

По какой-то причине Apple изменила определение FSSpec в 64-битномAPI:

#if __LP64__
struct FSSpec {
  UInt8               hidden[70];             // FSSpecs are invalid for 64 bit, but defined in case they appear in shared structs
};
typedef struct FSSpec                   FSSpec;

Значит ли это, что теперь невозможно получить имя файла, если вы получили StandardFileReply?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...