|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Май 26, 2004 19:15:10 Мужики.Кто еще в состоянии подскажите.Искал по всему форуму ответ на вопрос,который меня мучает уже который день.Ничего путного не нашел.Такое впечатление,что никто не пытается писать Com-ы на асме.А вот у меня зуд в одном месте.Желаю написать регистрируемую библиотеку,аля-MyCom2 от товарища Ernest J Murphy.Но,к сожалению,упираюсь в проблему - он приводит в примере udl-файл,в котором все GUID-ы с одним значением,такой udl MIDL компилировать не желает (ему видите ли не нравится,что GUID один и тот же).Во вторых объект и класс он обозвал одинаково,в результате код asm-а стал нечитаемым (в смысле не понятно где указание на объект,а где на класс объекта).Если кто силен в этом плане,разъясните страждущему.Спасибо. |
|
|
Дата: Май 26, 2004 19:26:18 он приводит в примере udl-файл,в котором все GUID-ы с одним значением А что тебе мешает самому сгенерить GUID'ы и запихать их в тот файл? uuidgen в помощь. |
|
|
Дата: Май 26, 2004 22:13:32 · Поправил: Quantum irrona Создаю в вижуале новый project ATL COM AppWizard, подсовываю ему IDL из примера MyCom2 by Ernie, компилю и получаю TLB! Никаких конфликтов с GUID'ами. |
|
|
Дата: Май 27, 2004 11:01:45 хорошо. вот пример из MyCom: sIID_IMyCom TEXTEQU <{0A21A8C41H,01266H,011D4H,{0A3H,024H,000H,040H,0F6H,0D4H,087H,0D9H}}> sLIBID_MyComLib TEXTEQU <{0A21A8C43H,01266H,011D4H,{0A3H,024H,000H,040H,0F6H,0D4H,087H,0D9H}}> sCLSID_MyCom TEXTEQU <{0A21A8C42H,01266H,011D4H,{0A3H,024H,000H,040H,0F6H,0D4H,087H,0D9H}}> как мы видим GUID везде одинаковый.меня же интересует какой из данных GUID-ов к какой секции idl-файла относится. |
|
|
Дата: Май 28, 2004 02:36:56 irrona Не одинаковые они!!! |
|
|
Дата: Май 28, 2004 19:06:52 Да с этим я уже разобрался. Спасибо всем. Теперь другой вопрос. Метод класса должен принимать строку в качестве параметра и возвращать строку. Какой тип данных мне использовать, если параметры метода,описанные в asm имеют тип DWORD? Пробовал тип char - не помогает. |
|
|
Дата: Май 28, 2004 19:13:10 Из всех тут тебе отвечал только квант. :) А что такое "поинтер", ты слышал? А в DWORD как раз void * и влазит. И если ты аллоцируешь внутри этого самого твоего метода класса память, то можешь спокойно возвращать void *. Потом перекастуешь. |
|
|
Дата: Май 31, 2004 18:34:52 volodya Обошелся без void.Использовал тип BSTR (хотя,в принципе, и LPTSTR нормально работает) с указателем. |
|
|
Дата: Май 31, 2004 18:37:52 · Поправил: volodya Все эти BSTR и LPTSTR (напридумывали, уроды), в конечном итоге, если не ошибаюсь, к wchar_t* сползают. Т.е. имеем тот же void* :) |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.073 |