ПредишенСледващото

Създаване на DLL с уеб ресурси

В придружаващата статия Архивът съдържа всички инструменти, описани в него и един пример за крайния DataBank.dll.

Архив Initial.zip съдържа междинен обект файл DataBank.obj бъдещата библиотека, скрипт ресурс файл DataBank.rc и компилиран двоичен файл от него DataBank.res ресурси. В допълнение, архивът съдържа файлове, които се поставят директно в библиотеката като ресурс: Header.gif. Return.gif. Back.jpg. Index.htm. Mainpage.htm. Page.htm и Top.htm.

Tools.zip архив съдържа всички инструменти, необходими за компилирането и да свърже DLL. Тя включва компилатор BRCC32.EXE ресурси. линкер ILINK32.EXE. необходими за тяхната работа правилни UUID.LIB файлове. LNKDFM60.DLL. RLINK32.DLL. RW32CORE.DLL. както и BuildAll.bat на партидата файл. съдържащи командни редове за работа с компилатора на ресурсите и свръзката. В инструментариум трябва да бъде включена с Borland C ++ Builder и Borland Delphi всички версии, но може би с имена, различни от имената на прикачените файлове в архиви.

Архивът съдържа DllSymChanger.zip съм създал програма DllSymChanger.exe. улеснява процеса на подмяна, необходими за работата на DLL героите.

Файлове със съдържание, независимо от наличието или липсата на компютърни инсталирани версии на BCB и Delphi на потребителя, неговата работа се проверява в кола с напълно "чист" Windows 98 SE на.

Спомняйки си класическа (не-RAD) програмиране с неговия характерен "ръчно" създаване на скрипт файл ресурс, ние заключаваме, че това е - точно това, което ни трябва. С други думи, ние сме заинтересовани от възможността за създаване на DLL, част от която би била необходима с ресурсите, в крайна сметка, HTM-страници.

В следващата стъпка трябва да получите най-компилиран файла ресурс, за да бъдат включени в нашия DLL. Това изисква самите (НТМ-страница) преки ресурси и файла на скрипта на ресурсите (в нашия случай това е кръстен DataBank.rc).

Приложената архива Initial.zip като пример, ние създаваме DLL с поставен в свързаните с уеб-страници. Файловете, които представляват тези страници са следните имена: index.htm. Mainpage.htm. Page.htm. Top.htm. Header.gif. Return.gif. Back.jpg. Това е последвано от три необходимите изисквания за правилното функциониране на IE в рамките на образуваните DLL:
  • Всички файлове, които участват в уеб-страници трябва да са в една директория;
  • Всички препратки в уеб-страниците трябва да са относителни;
  • Името на всеки от файловете, използвани в уеб-страници не трябва да съдържа черти. Имената на файловете трябва да се състоят от набор AvЂ | Z и 0vЂ | 9 знака. Имената на файловете не трябва да започват с номера.

Неспазването на третото изискване при използването на символа долна черта не е от решаващо значение и ще бъдат обсъдени по-долу. Останалата част от третите изисквания трябва да бъдат изпълнени. Това се дължи на факта, че имената на ресурси, когато събират ВЕИ-файл, трябва да спазват правилата за C езикови идентификаторите на, нарушаването на които води до грешки по време на компилация ресурс скрипт файл в двоичен файл ресурс.

Очаквайки име ресурс или име ресурс тип

За да се реши този проблем, вместо точката, разделяща "името" на ресурса и неговото "разширение", ние използваме знака за - единственият герой, който не е цифра или главна буква и резолюция при създаването на име на ресурс. Както можете да предположите, крайният DLL файл ще съдържа ресурси с имена, разделени с долна черта, която, за функционалността на DLL трябва да замени точка. Но това - по-късно.

Вторият елемент на низа за описание на ресурси е името на типа на ресурсите. Ако приложим предварително определена произволно тип RCDATA да зададете нашите ресурси. компилация и монтаж DLL ще, ресурсите ще бъде правилно, изтъкнати от всички програми и приложения от библиотеката като ресурс, но IE ще откажат да се справиш с тях по такъв начин, че се нуждаем. Точно същото се случва, ако зададете страницата за ресурси на всяка друга произволна тип. Това означава, че има някаква надежда, че IE ще разгледа видовете скупчени ресурси като един вид поддиректория, че ще бъде доста добра идея да се организират йерархията на отношенията между логически групи страници, но IE разработчиците изглежда да има различно мнение по този въпрос. По този начин, ако ние присвоява името на типа на ресурсите, например, PAGEAREA или всеки друг, включително RCDATA, след последваща обработка библиотека IE все още отказва да приеме на уеб-страници под формата на уеб-страници. Решението на този безизходица проучване показва shdoclc.dll библиотечна система структура. Всички страници са разположени на нейните ресурси принадлежат на два вида имена, които не са струни и целочислени идентификатори. За да зададете вида число ресурси в скрипт линия ресурс трябва да бъде идентификатори целочислена стойност затворени в скоби. В противен случай, съставител на ресурсите ще ги приемат като низ идентификатори.

Третият елемент на низа за описание на ресурси е името на файла на страницата. Може да се каже просто като подниз, или затворени в двойни кавички. Излишно е да казвам, всичко, използван в създаването на DLL файлове с този метод на работа трябва да бъде в същата директория на диска. Това важи както за всички проектни файлове за услуги, както и всички файлове, които са поставени в ресурсите.

В края на низ, описващ страницата за връзка index.htm до ресурсите на библиотеката на бъдещето изглежда по следния начин:

index_htm (23) index.htm

След създаде скрипт ресурс файл, трябва да задържите компилация му. За да направите това, използвайте командния ред компилатор BRCC32.EXE ресурси. която е част от BCB6. С поглед към името на файла компилатор, ние виждаме, че резултатът от работата му ще бъде 32-битова двоична ресурс файл (най-малко, ако не се използват допълнителни опции за командния ред). Теоретично, можете да използвате най-различни 16-битови компилатори (RC.EXE. BRCC.EXE и т.н.), и ние ще се постигне желания резултат, но тъй като ние продължаваме да се използва 32-битова свързваща, се препоръчва да се използва 32-битова компилатора ресурси , Започнете Resource компилатор извършва от командния ред, което включва името на полето ресурс име съставител на файлове и ресурси скрипт файл:

Следващата стъпка в създаването на DLL е да се изгради библиотека на обектните файлове и двоичен DataBank.obj DataBank.res ресурсен файл. За тази цел ние използваме като свързващата ILINK32.EXE. предизвиквайки RLINK32.DLL и LNKDFM60.DLL библиотека и използване UUID.LIB файл. Команден ред свързваща разговор с параметри, както следва:

ilink32 DataBank.obj, DataBank.dll. DataBank.res

Внимание: Изображение свързан като изпълним, но с разширение .DLL или .BPL

Това се дължи на липсата на DEF-файл, но, въпреки това, за точността на съдържанието на библиотеката не са засегнати. По време на свързващото вещество събрание ще създадете файл с името на получената модул и разширения TDS, MAP, ILC, ИББ, ILF, ILS, че може безопасно да се премахнат.

Библиотека елементи с уеб ресурси, създадени.

Ако се използва 16-битово свързваща (например, LINK.EXE), след като резултат ще получим правилния 16-битови DLL, но IE отказа да работи с нея, издаване на подходяща съобщение.

Да предположим, че DataBank.dll има следния път:

Ако стартирате IE и в URL линия, тип

Internet Explorer ще INDEX_HTM ресурс намира в DataBank.dll. но не може да разпознава правилно очаква действие от него, тъй като име на идентификатор на ресурси IE възприема като името на файла без разширението.

Сега ние трябва да започне IE и да влезе в низа URL

Основната цел е била изцяло изпълнена.

Заслужава да се отбележи, че ако връзките в рамките на библиотеката, на IE действа като връзка при изпълнението на диск директория.

Аз предложих този метод отваря големи възможности за програмистите да използват TCppWebBrowser компонент (TWebBrowser), заедно с допълнителни данни, за да бъде адекватно защитен софтуер.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!