Я портирую проект на iPhone, и он использует realloc
и memcpy
которые не найдены. Что должен включать заголовок?
Это - проект, смешивающий Objective C и C++, и я начинаю теряться.
Заранее спасибо за Вашу справку!
Я столкнулся с этой проблемой в проекте, особенно потому, что у BlazeDS было другое время ожидания сеанса, чем у реального приложения (с использованием единого знака на архитектуре через ClearTrust). Следует отметить, что это было в среде JBoss. В итоге я выбрал довольно простой подход, найдя 2 специфических кода в обработчиках отказов (имели базовый класс с общим обработчиком отказов): DuplicateSessionDetected и DelivityInDoubt. Я видел DuplicateSessionDetected всякий раз, когда BlazeDS пытался создать новый сеанс для того же самого идентификатора сеанса JBoss. DeliviveInDoubt, как правило, иногда также появляется, но я не уверен, почему. Когда я увидел эти коды ошибок, я предпринял необходимые действия, чтобы обновить приложение (в зависимости от ваших потребностей, вы можете перенаправить на страницу входа или что-то еще). Очевидно, что в зависимости от среды может потребоваться прослушивание различных кодов неисправностей, и этот подход может работать не в любой ситуации, учитывая различные среды/конфигурационные элементы/и т.д.
Другой подход, который обсуждался, заключался в использовании таймера в приложении Flex, который представлял бы таймер таймаута BlazeDS, но я не поклонником, чтобы таймеры сидели с этой целью. Я также слышал о посылке небольшого количества данных туда и обратно на сервер для проверки тайм-аута, но опять же, это казалось менее чем идеальным.
-121--4056488-Чтобы сделать Process.Start использовать exec непосредственно вместо использования механизма OS 'для открытия файлов, необходимо задать для UseShellExecute значение false. Это также справедливо для Linux и Windows.
Process.Start(new ProcessStartInfo (
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome",
"--no-first-run")
{ UseShellExecute = false });
Обратите внимание, что для правильного запуска набора приложений Chrome можно использовать «open». Используйте аргумент «-a» для принудительного запуска определенного приложения, аргумент «-n» для открытия нового экземпляра и «--args» для передачи аргументов:
Process.Start(new ProcessStartInfo (
"open",
"-a '/Applications/Google Chrome.app' -n --args --no-first-run")
{ UseShellExecute = false });
-121--1537532- В C:
#include <string.h> // memcpy
#include <stdlib.h> //realloc
В C++ удалите .h
и префикс с c
. В C++ они будут помещены в пространство имен std
, но также будут глобальными.
В C ++ более идиоматично использовать std :: copy
, чем C memcpy
, хотя последний работает так же хорошо. Чтобы получить std :: copy
, вам нужно #include
.
Однако прямого эквивалента realloc
в C ++ не существует.