ADN Club > ObjectARX
Создание проекта без виззарда
pucher:
Здравствуйте. Создание проекта при помощи виззарда срабатывает. А вот попытка создать проект с ноля, как описано в Developer's Guide, через Empty Project, не увенчалась успехом. Код следующий:
--- Код - C++ [Выбрать] ---#include "rxregsvc.h"#include "acutads.h"#include "stdafx.h"#include "tchar.h"#include <aced.h> extern "C" AcRx::AppRetCodeacrxEntryPoint(AcRx::AppMsgCode msg, void* appId){ switch(msg) { case AcRx::kInitAppMsg: acrxUnlockApplication(appId); acrxRegisterAppMDIAware(appId); acutPrintf(_T("\nHello World!")); break; case AcRx::kUnloadAppMsg: break; } return AcRx::kRetOK;}При попытке компиляции в строке
--- Код - C++ [Выбрать] ---acutPrintf(_T("\nHello World!"));обнаруживаются ошибки:
--- Цитировать ---Error 1 error C2664: 'acutPrintf' : cannot convert parameter 1 from 'const char [14]' to 'const ACHAR *'
2 IntelliSense: argument of type "const char *" is incompatible with parameter of type "const ACHAR *"
--- Конец цитаты ---
Вопросы:
1. Как победить эту ошибку?
2. Почему во всех примерах Developer's Guide при работе со строкой не используется запись вида _T(x)? Например,
--- Код - C++ [Выбрать] ---acutPrintf("\nExample Application Loaded");Такая строка даже в проекте, созданном виззардом, вызовет ошибку. Не будут же все примеры неправильными...
Александр Ривилис:
pucher,
Прочитай у меня в подписи как следует форматировать код у нас на форуме и исправь у себя в сообщении!
pucher:
--- Цитата: Александр Ривилис от 17-12-2018, 21:40:54 ---Прочитай у меня в подписи как следует форматировать код у нас на форуме и исправь у себя в сообщении!
--- Конец цитаты ---
Готово
Александр Ривилис:
--- Цитата: pucher от 17-12-2018, 22:05:55 ---Готово
--- Конец цитаты ---
Отлично. Теперь по существу вопроса. В каждой из версий ObjectARX и Visual Studio свои особенности настройки проектов. Рекомендую не заморачиваться и использовать ObjectARX Wizard, т.к. запомнить десятки необходимых настроек проекта очень сложно.
--- Цитата: pucher от 17-12-2018, 21:38:40 ---1. Как победить эту ошибку?
--- Конец цитаты ---
Проект должен быть Unicode. Тогда _T("...") означает L"...", а не "..." и компиляция проходит нормально.
--- Цитата: pucher от 17-12-2018, 21:38:40 ---2. Почему во всех примерах Developer's Guide при работе со строкой не используется запись вида _T(x)? Например,
Код - C++ [Выбрать]
acutPrintf("\nExample Application Loaded");
Такая строка даже в проекте, созданном визардом, вызовет ошибку. Не будут же все примеры неправильными...
--- Конец цитаты ---
Многие примеры в нём устаревшие и не учитывают UNICODE-революцию в AutoCAD 2007.
DimVer:
--- Цитата: Александр Ривилис от 17-12-2018, 22:37:42 ---Отлично. Теперь по существу вопроса. В каждой из версий ObjectARX и Visual Studio свои особенности настройки проектов. Рекомендую не заморачиваться и использовать ObjectARX Wizard, т.к. запомнить десятки необходимых настроек проекта очень сложно.
--- Конец цитаты ---
Если этот этап вроде бы пройден, а проекты создаются не так часто. Есть ли смысл использовать Wizard? Как я понимаю - это дополнительная обёртка к классам ObjectARX?
Навигация
Перейти к полной версии