02.06.2008, 09:27 | #1 |
Участник
|
Что такое класс в понятиях WinApi?
Тут прочитал книгу по WinApi, но так и ненашёл для себя ответ на этот вопрос.
Ну не слова что есть такое понятие WinApi как "класс". Есть процессы, потоки. И вот возник ещё такой вопрос все классы в Axapt-е наследуются от Object. Так почему тогда handle есть у Object-а, но нет у класса? |
|
02.06.2008, 09:59 | #2 |
Сенбернар
|
Ужос НАХ (Navision AXapta...)
|
|
02.06.2008, 10:09 | #3 |
Участник
|
Обоснуй.
|
|
02.06.2008, 10:26 | #4 |
Сенбернар
|
Обоснование
Цитата:
Цитата:
Рекомендую обратить внимание на словосочетание "экземпляр (суть объект) класса"... Последний раз редактировалось RVS; 02.06.2008 в 10:30. |
|
02.06.2008, 10:30 | #5 |
Участник
|
Рекомендую http://www.rusforus.ru/ зря вы тут с нами с неучами.
|
|
02.06.2008, 10:37 | #6 |
Сенбернар
|
|
|
02.06.2008, 10:40 | #7 |
Участник
|
|
|
02.06.2008, 10:46 | #8 |
Участник
|
WinAPI - в общем не объектная библиотека и оперирует понятиями из структурного программирования.
По второму вопросу - прочитай в любом учебнике who is класс и объект - сразу все понятно станет. |
|
02.06.2008, 10:50 | #9 |
Участник
|
Цитата:
Ну может это не kernel32.dll (сначало думал в ней найти то что нужно, не нашёл пока) , но какая то библиотека должна быть для этих целей. |
|
02.06.2008, 10:55 | #10 |
Сенбернар
|
К теме - легко.
Задайте точнее вопрос - полУчите (с большой вероятностью) правильный ответ. Или, может, поделитесь - что за задача у Вас? PS: Про handle, которого "нет у класса", я вам, кстати, маякнул. Последний раз редактировалось RVS; 02.06.2008 в 10:59. |
|
02.06.2008, 11:02 | #11 |
Участник
|
Цитата:
Поэтому начал с терминалогии. Так легче понять где копать. Вопросов много. Один из вопросов. Как зная handle класса получить объект класса? |
|
02.06.2008, 11:03 | #12 |
Участник
|
С точки зрения WinAPI - это запись во внутренней структуре - со своим номером (handle), это уже в прикладной проге как-то преобразуется в объект.
Для каких целей ? |
|
02.06.2008, 11:13 | #13 |
Сенбернар
|
Это вряд ли.
Так. У класса не бывает handle. Handle есть у экземпляра класса. Далее. Предположим, у вас есть handle объекта какого-то непонятного класса, структура которого (свойства, методы...) вам неизвестна. Вопрос: что вы с ним делать-то собираетесь? Задачу уточните, плиз... |
|
02.06.2008, 11:16 | #14 |
Участник
|
Цитата:
Не удобно пользоваться скриптами, которые в EditorsScripts. Сначало убрал все ненужные мне скрипты оставил пять. (Просто из заголовка метода убрал Editor e внуторь метода и в списке метод исчезает). Всё равно как то не комфортно, класно бы было в Tabax добавить на кнопки. Класс Editor имеет один и тот же handle(65299 похоже зарезервированный). Когда мы закрываем редактор кода и открываем новый, класс Editor перезагружается, handle остаётся тем же. |
|
02.06.2008, 11:17 | #15 |
Участник
|
В понятиях WinApi...там нет ничего о том, что такое класс. WinAPI это просто набор функций по работе с виндовсом и больше ничего.
С помошью WinAPI можно создать любое приложение под виндовс на любом языке программирования (ну или почти любом). Например на ассемблере - там классами никак не пахнет.
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0 |
|
02.06.2008, 11:20 | #16 |
Участник
|
Это наверное id класса и все. Проверьте. Ничего путного из этой цифры с точки зрения винапи вы не получите.
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0 |
|
02.06.2008, 11:21 | #17 |
Участник
|
Пробовал такой вариант сделать метод setEditor() в EditorScripts и сохранял Editor в классе Info (переменную добавил Editor curEditor).
И всё работает даёт правильные значения местонахождения курсора. Но до тех пор пока я не закрую текущий редактор кода и не открою новый. Editor исчезает. |
|
02.06.2008, 11:29 | #18 |
Сенбернар
|
Ох...
Я правильно понимаю, что: - вы работаете в Axapta - вы открываете редактор кода (в Axapta) - вам не нравится, что надо давить на правую кнопку мыша, потом ползать по менюшке, чтобы выполнить скрипт - вы хотите вынести вызов нужных вам скриптов на отдельно стоящие кнопки (то есть, отдельные от Аксаптиного Редактора кода) - вы хотите, чтобы вызванный с кнопки скрипт выполнялся в том редакторе, который сейчас активен (это если открыто несколько Редакторов кода) Это так? |
|
02.06.2008, 11:32 | #19 |
Участник
|
Цитата:
Сообщение от RVS
Я правильно понимаю, что:
- вы работаете в Axapta - вы открываете редактор кода (в Axapta) - вам не нравится, что надо давить на правую кнопку мыша, потом ползать по менюшке, чтобы выполнить скрипт - вы хотите вынести вызов нужных вам скриптов на отдельно стоящие кнопки (то есть, отдельные от Аксаптиного Редактора кода) - вы хотите, чтобы вызванный с кнопки скрипт выполнялся в том редакторе, который сейчас активен (это если открыто несколько Редакторов кода) Это так? |
|
02.06.2008, 11:45 | #20 |
Administrator
|
Че-то читаю и не втыкаю. Есть параллельная тема Получение экземпляра текущего Editor в которой собсно все обсуждается.
Если у Вас не получается получить экземпляр Editor e - то сделайте просто: удалите весь EditorScripts до dis-слоя, поставьте бряку в методе showScripts (актуально только если у Вас 3-шка - в 4-ке - это другой метод) и попробуйте вызвать какой-либо скрипт как обычно - либо по Alt-M, либо по нажатию кнопки на тулбаре (только не через правую кнопку мыши!). Увидите - что Вы провалитесь в отладчик. Далее - дело техники - ведь уже экземпляр класса Editor у Вас уже есть
__________________
Возможно сделать все. Вопрос времени |
|