Тема: Дебажить arx

Всем привет,
Есть autocad 2007 и соответствующий Object Arx. Подскажите плз новичку как это дебажить. Я делаю так:
Tools->Attach To Process выбираю Acad.exe. ТОчки не ставятся типа No symbols have been loaded. Arx я кидаю в корень установленного Автокада. В чем может быть проблема?

Re: Дебажить arx

А компилируешь и линкуешь в Debug? Служба отладчика запущена?

Re: Дебажить arx

ДА в дебаг, проект создавал визардом. Я вторую лабу делаю из ObjectArx. А как правильно надо, если не сложно по шагам.

Re: Дебажить arx

У меня видимо моя arx не грузится в автокад. После Attach To Process пытаюсь исполнить свою команду пишет не найдена такая :(. Хотя если через drag and drop кинуть мою dll в автокад все работает.

Re: Дебажить arx

> Int_2007
Так arx нужно вручную загрузить в AutoCAD (команда _APPLOAD или _ARX или (arxload "имя arx-файла или полный путь к нему"))

Re: Дебажить arx

> Александр Ривилис
Думаю, ключевыми словами тут будут

Хотя если через drag and drop кинуть мою dll в автокад все работает.

Выделение мое.

Re: Дебажить arx

Ага заработало, всем огромное спасибо.
Еще небольшой вопрос, можно ли загрузить свою arx автоматически, если стартуешь Автокад из другой проги через ::ShellExecute( NULL, "open", путь к установленному автокаду, NULL, NULL, SW_SHOW );

Re: Дебажить arx

> Int_2007
Если бы ты не поленился и почитал справку по AutoCAD, то нашел бы:

Command line switches can specify a separate startup routine for each project.
You can use command line switches to specify several options when you start the program. For example, you can run a script, start with a specified drawing template, and display a specified view when a drawing is opened. With command line switches, you can also set up several program icons, each with different start-up options.
Command line switches are parameters you can add to the acad.exe command line associated with a Microsoft® Windows® shortcut icon or the Windows Run dialog box. You can include several switches within a single command line. Valid switches are listed in the following table.
/b
Script name
Designates a script to run after you start the program (b stands for batch process). Scripts can be used to set up drawing parameters in a new drawing file. An SCR file type is assumed.
/t
Template file name
Creates a new drawing based on a template or prototype drawing. A DWT file type is assumed.
/c
Configuration folder
Specifies the path for the hardware configuration file that you want to use. You can specify a directory or a particular file. A CFG file type is assumed.
If you don't set the /c switch, the executable directory is searched and the ACADCFGW or ACADCFG environment variable is used as a way to define the configuration file and directory location.
/v
View name
Designates a particular view of the drawing for display at startup.
/ld
ARX or DBX application
Loads a specified ARX or DBX application. Use the following format:
<path>\<filename>.ARX
If the path or file name contains spaces, then the path or file name should be wrapped in double quotes. If no path information is included, the program search path is used.
/s
Support folders
Designates support folders other than the current folder. Drawing support files include text fonts, menus, AutoLISP files, linetypes, and hatch patterns. The maximum number of folders you can specify in the path is 15. Each folder name is delimited by semicolons.
/r
Default system pointing
device
Restores the default system pointing device. It creates a new configuration file (acad.cfg) and renames the previous acad.cfg file to acad.bak.
/nologo
No AutoCAD logo screen
Starts the program without first displaying the logo screen.
/p
User-defined registry
profile for starting the program
Specifies a user-defined registry profile for starting the program. The selected profile is in effect only for the current session of the program, unless you make another profile current in the Options dialog box during that session.
You create or import profiles on the Profiles tab in the Options dialog box. With the /p switch, you can specify only those profiles that are listed in the Options dialog box. If the profile does not exist, the current profile is used.
/nossm
No Sheet Set Manager
window
Suppresses the display of the Sheet Set Manager window on startup.
/set
Sheet set
Loads the named sheet set on startup. Use the following format:
<path>\<sheet set data file>.DST

Re: Дебажить arx

Александр Ривилис, еще раз спасибо, сорри за лень :)

Re: Дебажить arx

Проблема с дебагом.
Проект создается со следующими свойствами:
- Implement _DEBUG preprocessor symbol
- Project type: ObjectARX (AutoCAD Extension)
- Extension DLL using MFC Shared DLL
`- AutoCAD MFC Extention Support
Не могу отдебажить данное приложение. В справке нашел совет:

When debugging ObjectARX applications built with a dynamically linked MFC library, link with the release version of C runtime and MFC libraries. This allows use of the MFC or C runtime debugging facilities, but does not allow stepping into the Microsoft MFCdebugging source code.

Но не знаю, как правильно настроить Linker по этому совета. Если конечно проблема в нем.

Re: Дебажить arx

> equilibrium
Простите, не указал версию SDK и AutoCAD.
SDK - 2007, AutoCAD - 2008 EN.

Re: Дебажить arx

Что именно не получается?

Re: Дебажить arx

Александр Ривилис пишет:

ТОчки не ставятся типа No symbols have been loaded.

Re: Дебажить arx

Точно по пунктам опиши что ты делаешь. Если:
1) при помощи ObjectARX Wizard создать проект
2) откомпилировать его
3) расставить контрольные точки
4) в VS Debug->Start debugging
5) Загрузить при помощи _APPLOAD свое приложение
То все нормально отлаживается.

Re: Дебажить arx

> Александр Ривилис
1. Создаю проект при помощи мастера с настройками, указанными выше.
2. Добавляю команду и реализую - отображаю диалог.
4. Компилирую в дебажной кофигурации.
5. Запускаю автокад.
6. Приаттачиваюсь к процессу.
7. Ставлю брек-поинт на вызов отображения диалога.
8. Брек-поинт становится "пустым": No symbols have been loaded.

Re: Дебажить arx

Сделай так, как я написал.

Re: Дебажить arx

> Александр Ривилис
К сожалению, подключение было не к Native коду, а к Managed. Невнимательность... Проблема решена.
Спасибо за помощь.