Компютърна документация
Разработване на клиенти с помощта на персонализирани указатели
Създайте нов празен проект за приложение на конзола на име SayTLibClient и вмъкнете новия файл SayTLibClient.cpp в него. Въведете следния текст във файла и се уверете, че текстът на директивата #import или не е прекъснат, като се прекъсне нейното продължение на друг ред, или е нарушен от правилата, т.е. използвайки тирето '\', както можете вижте в текста на книгата. След това стартирайте проекта за изпълнение (Ctrl + F5):
#import "C: \ MyProjects \ MyComTLib \ Debug \ MyComTLib.tlb" \
// ====== Използване на интелигентен указател
pSay-> SetWord (L „Клиентът вече използва интелигентни указатели!“);
Въпреки че няма много редове код, които са присъствали в предишната версия на клиентското приложение, новата версия също трябва да работи. Нека се опитаме да разберем как се случва това.
- Първо, той използва директивата #import, която чете информация от библиотеката на типа MyComTLib. tlb и генерира някакъв C ++ код въз основа на него. Този код участва в съставянето и сглобяването на изпълнимия код на клиента. Новият код е нещо като еквивалент на библиотека с типове и съдържа описания на интерфейси, внесени от TLB файл.
- На второ място, ние създаваме и използваме т. Нар. Интелигентен указател („интелигентен“ показалец pSay) към интерфейса, който ни интересува. Той се грижи за по-голямата част от работата по поддържане на интерфейса.
Директивата tfimport може да се използва за генериране на код не само от TLB файлове, но и от други двоични файлове, като EXE, DLL или OCX файлове. Важно е тези файлове да съдържат информация за видовете COM обект в.
Можете да видите въздействието на директивата #import върху плодовете на компилатора C ++ в папката за отстраняване на грешки. Има два нови заглавни файла: MyCoTLib.tlh (заглавие на библиотека с типове) и MyComTLib.tli (внедряване на библиотека с типове). Първият файл включва кода на втория (в този ред) и двамата се компилират така, сякаш са включени в директивата #include. Този процес на преобразуване на библиотека от двоичен тип в изходен код на C ++ дава възможност за решаване на доста трудния проблем за откриване на грешки при използване на данни за COM обект. Грешките в двоичния код са трудни за диагностициране и грешките в изходния код се идентифицират и посочват от компилатора. На този етап е важно да не изпускате от поглед веригата от трансформации: