Я могу остановить C++ / CLI от добавления IDisposable к моему касательно класса?

Используемое вами DBMS_SCHEDULER.CREATE_JOB содержит неверные аргументы. Желательно следовать этим стандартным шагам для запуска программы.

Сначала создайте программу с соответствующим именем и определите, что запускать. В приведенном ниже примере я запускаю команду bash напрямую. Вы можете поместить их в отдельный сценарий оболочки с соответствующими разрешениями и добавить его имя в program_action

BEGIN
DBMS_SCHEDULER.CREATE_PROGRAM (
 program_name=> 'COPY_PROGRAM',
 program_type=> 'EXECUTABLE',
 program_action  => '/bin/bash -c "echo hello world"',
 enabled=> TRUE,
 comments=> 'Push files to Amazon S3 Bucket.'
);
END;
/

. Затем создайте задание, используя эта программа.

BEGIN
DBMS_SCHEDULER.CREATE_JOB (
   job_name     => 'TEST_JOB',
   program_name => 'COPY_PROGRAM',
   start_date => NULL,
   repeat_interval => NULL,
   end_date => NULL,
   enabled => FALSE,
   auto_drop => FALSE,
   comments => '');
END;
/

См. эту ссылку для более подробной информации.

6
задан Deduplicator 16 September 2014 в 01:45
поделиться

2 ответа

Я думаю, что ответ должен содержать дескриптор к msclr:: com:: ptr вместо того, чтобы содержать его 'значением' (который все еще содержит его как, дескриптор 'негласно', кроме компилятора CLI C++ рассматривает его как значение - 'удаление' его (вызов Располагают), когда объект владельца удален (Склонный)).

2
ответ дан 17 December 2019 в 18:20
поделиться

Я не уверен, что соглашаюсь с объяснением для предотвращения реализации IDispose - но почему не только хранят IWhatever* в Вашем классе. Компилятор не должен затем генерировать реализацию IDisposable.

Если Вы не хотите поведения деструктора затем, какое преимущество является com:: обертка ptr, покупая Вас? Можно всегда объявлять com:: ptr на стеке и присваивают Ваш членский указатель на него в любом данном методе при реальной необходимости в нем.

1
ответ дан 17 December 2019 в 18:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: