0 / 0 / 0
Регистрация: 29.03.2020
Сообщений: 3
1

C++ dxfexport coreldraw (com controlling)

23.12.2022, 22:40. Показов 916. Ответов 0

Author24 — интернет-сервис помощи студентам
Доброго времени суток.
//--------------------------------------------------------------------------------------------------------------------
На VBA в CorelDraw есть макрос для экспорта векторов в dxf формат.

Visual Basic
1
2
3
4
5
6
7
8
dim filtr as Object// работает и так, и вот так dim filtr as ExportFilter
set filtr = activedocument.exportex(имя файла, фильтр cdrDXF, и другие аргументы) // подготавливается экспорт
with filtr
    .unit = cdrMillimetr //эти свойства фильтра в редакторе не видны но ошибки не возникает, видимо тут позднее\ранее 
                                //связывание и dxf фильтр с этими свойствами вместо "Object" подключается уже во время работы
    
    .finish                    //здесь происходит сохранение и завершается экспорт.
end with
Никак не получается реализовать тоже самое на c++ через COM интерфейс
//------------------------------------------------------------------------------------------------------------------------
В своем приложении на с++ я сделал #import vgcore.tlb для работы с Corel через смарт указатели
и через пространство имен VGCore:: я юзаю без проблем объектную модель CorelDraw
Почитав API по CorelDraw я выяснил что функция ExportEx возвращает объект ICorelExportFiltrPtr
и тогда я сделал так:

C++
1
2
VGCore::ICorelExportFiltrPtr filtr = doc->ExpotrEx(имя файла, фильтр cdrDXF, и другие аргументы);
filtr->finish();
все работает, экспорт выполняется с последними настройками, которые использовались в CorelDraw при экспорте.
среди свойств и методов объекта filtr нет тех которые в VBA я дописываю with........end with, а они нужны

в папке CorelDraw я нашел среди фильтров DXF.tlb и также сделал #import DXF.tlb
через появившееся пространство имен FilterDXFLib:: мне стал доступен объект IDXFExportPtr со всеми теми методами,
которые я использую в VBA "with.......end with"

почитав файлы tli и tlh я пришел к выводу что ICorelExportFiltrPtr это какая то абстракция, базовый класс\интерфейс с набором
общих функций для любого фильтра и используется в функциях и ExportEx и SaveAs и на основании аргумента cdrFiltr в
вызове функции ExportEx уже используется конкретная реализация с добавленными свойствами\методами
//-------------------------------------------------------------------------------------------------------------------------------
ВОПРОС: как связать полученный объект ICorelExportFiltrPtr и IDXFExportPtr, как привести этот объект к производному с дополнительными методами

потому что всё что я пробую

VGCore::ICorelExportFiltrPtr filtr = doc->ExpotrEx(имя файла, фильтр cdrDXF, и другие аргументы);

1. FiltrDXFLib::IDXFExportPtr df = filtr; // NULL

2. FiltrDXFLib::IDXFExportPtr df= doc->ExpotrEx(имя файла, фильтр cdrDXF, и другие аргументы); // NULL

3. filtr->QueryInterface(&df); // com исключение - нет подходящих интерфейсов

4. df = dynamic cast <FiltrDXFLib::IDXFExportPtr>(filtr); //не может привести неполный тип

и т.д.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.12.2022, 22:40
Ответы с готовыми решениями:

CorelDraw
Добрый вечер! как можно в CorelDraw написать буквы в окружности? Добавлено через 1 час 5 минут...

CorelDraw X5
Добрый вечер, скачал с официального сайта пробную версию программы, (кстати программа супер!!!) и...

CorelDraw 4, не Х
Уважаемые коллеги! Кто работал с корелом в 90х? Может осталась версия 4 или пять (не Х!!) Помогите,...

CorelDRAW
Помогите кто нибудь ЗАДАНИЕ 1. Нарисуйте изображение шестеренки в CorelDRAW, освещенной рассеянным...

0
23.12.2022, 22:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.12.2022, 22:40
Помогаю со студенческими работами здесь

CorelDraw X3
Подскажите, как установить интерфеqс на русском языке в CorelDraw X3? Потому как кроме English US...

CorelDraw и 3d
Есть несколько весомых файлов в формате .cdr. Сделанных через CorelDraw версии 9. После...

Тесты по CorelDRAW
Добрый день, товарищи, помогите, пожалуйста. МОЖЕТ У КОГО-НИБУДЬ ЕСТЬ ТЕСТЫ с ответами ПО...

CorelDRAW.X7 на windows 10
Здравствуйте. Такая проблема. Портативный CorelDRAW.X7 не запускается на windows 10, раньше...

CorelDraw Photoshop
Hi ppls) Помогите немного!Есть тут,кто логотипы создает ? Мне подружка предложила создать логотип...

CorelDraw и Excel
Здравствуйте, открываю файл эксель и получаю ошибку &quot;sub or function not defined&quot; вот код Private...

Удаление CorelDraw
Устанавливаю coreldraw x5, для этого необходимо было удалить старую, по причине истечения срока....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru