Я пишу кросс-платформенное приложение, и мне нужно передать argc
и argv
из Objective-C в Xcode в мой общий класс обработчика аргументов в C++. У меня есть глобальный указатель на этот класс обработчика, который я установил с помощью команды new
, но поскольку я не могу выполнить new
в Objective-C, я пытаюсь сделать следующее:
У меня есть заголовочный файл с именем MacCommandLineArgs.h
, который содержит только следующее:
static int cmdlArgc = 0;
static const char** cmdlArgv = NULL;
Затем я установил их из main.m
:
int main(int argc, char *argv[])
{
cmdlArgc = argc;
cmdlArgv = (const char**)argv;
return NSApplicationMain(argc, (const char **)argv);
}
После входа в раздел приложения Objective-C++ я пытаюсь прочитать эти глобальные переменные, чтобы передать их классу чистого C++:
int argc = cmdlArgc;
const char** argv = cmdlArgv;
globalCommandLineArgs = new CCommandLineArgs(argc, argv);
При выполнении с помощью отладчика cmdlArgc
и cmdlArgv
отображаются как действительные данные, но argc
и argv
по-прежнему равны 0 и NULL после присвоения. Что я здесь делаю неправильно?