MyFont.exe normal linker kullanmayı gösteren örnek bir dosyadır.
Yazı tiplerini, yalnızca kaynak dinamik bağlantı kitaplıkları (DLL) içindeki kaynaklar olarak depolanır. Özel yazı tipi kitaplık oluşturma işlemi, yeni yazı tipi kaynakları oluşturma ve bunları hiçbir koduna sahip bir DLL ekleme içerir. Yazı tiplerini, yalnızca kaynak kitaplığında olması gerekir.
Windows 3.x yazı tipi Düzenleyicisi Windows sürüm 2.x ve sürüm 3.x Windows ile uyumlu düzenleme raster yazı tiplerini destekler.
Özel bir linker kullanmak zorunda kalmadan bu sorunu azaltır bir kod kesimi olan bir yazı tipi kaynak DLL oluşturmak mümkündür.
Aşağıdaki dosyalar Microsoft Yükleme Merkezi'nden yüklenebilir:MyFont.exe
Microsoft destek dosyalarını karşıdan yükleme konusunda ek bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
119591
Microsoft Destek Dosyaları Çevrimiçi Hizmetler'den Nasıl Alınır
Microsoft bu dosyada virüs taraması yapmıştır. Microsoft, dosyanın kullanıma sunulduğu tarihteki en güncel virüs tarama yazılımını kullanmıştır. Dosya, üzerinde herhangi bir yetkisiz değişiklik yapılmasını engellemeye yardım eden geliştirilmiş güvenliğe sahip sunucularda depolanır.
Temel adımlar (genel bakış)
I. yazı tipi dosyalarını yazı tipi Düzenleyicisi'ni kullanarak oluşturun. Iı. yazı tipi kaynağı olan bir komut dosyası oluşturun. Iıı. örnek kod bir modül oluştur. IV. yazı tiplerini açıklar modülünün tanımı bir dosya oluşturur. D. derlemek ve bu kaynakları bağlayın. Not
"Microsoft Windows yazılım geliştirme seti Kılavuzu programlama.", Bölüm 18 okunamıyor. Aşağıdaki yordam çok benzer.
<a1>Adım</a1> ı: bir yazı tipi dosyası oluşturun...
- Yazı tipi düzenleyiciyi başlatın.
- Varolan bir yazı tipi dosyasını (FNT) açın.
- Hücre diziler ve varolan yazı tipi özniteliklerini düzenleyebilirsiniz.
- Yeni yazı tipi farklı bir adla kaydedin.
Not 1: It sıfırdan yeni bir yazı tipi üretmek olanaklı değildir; varolan bir yazı tipi dosyasının düzenlenmesi gerekir. Bir yazı tipi, VGASYS.fnt, Windows 3.x yeni yazı tipleri esas alacağı bir yazı tipi sağlamak için SDK ile birlikte sağlanır.
Not 2: Yazı tipi biçimlerini aldatıcı adlarıdır. Windows 3.0 uyumlu bir biçimde yalnızca 386 gelişmiş modda çalışır. Tüm modlarda penceresi 2.0 uyumlu bir biçimde çalışır; bu nedenle, yazı tiplerini 2.0 biçiminde kaydetmek genellikle daha iyi.
Iı. adım: kaynak yazı tipi komut dosyası oluşturma
- Bir kaynak komut dosyası (RC) dosyası oluşturun.
- Bir yazı tipi dosyası oluşturulan FONT tablo ekleyin. Örneğin:
MyFont1 FONT MYFONT1.FNT MyFont2 FONT MYFONT2.FNT
Iıı. adım: boş bir kod modülü oluştur
- Kod üreten bir derleme dil yordamı yazın.
- Bir nesne dosyası (OBJ) oluşturmak için bu kodu bir araya getirin. (Bu adım, gereksiz görünebilir ancak linker nesne dosyalar olan bir yürütülebilir dosya oluşturduğundan bu linker şikayet gerekir; aksi takdirde. Örnek bir kod modülü, boş bir kod kesimi ile oluşturma linker, gerekli yürütülebilir DLL oluşturmaya zorlar).
Örnek kod kesimi kodunu aşağıdakine benzer:
.xlist include cmacros.inc .list sBegin CODE sEnd CODE end
IV. adım: bir <a0>modülü</a0> tanım dosyasını oluşturun...
- Yazı tipi kaynağı başlığa sahip bir KITAPLıK deyimi ekleyin.
- Yazı tipi özelliklerini belirten bir AÇıKLAMA deyimi ekleyin.
- Kitaplık, MS-DOS'dan çağrılır durumunda bir SAPLAMA deyimi ekleyin.
- NONE özniteliğine sahip bir VERI deyimi ekleyin.
Bir <a0>yazı tipi</a0> kitaplığının DEF dosyası aşağıdaki benzer:
NotAÇıKLAMA
LIBRARY FONTLIB DESCRIPTION 'FONTRES 133, 96, 72: MyFont, Terminal (7 point)' STUB 'WINSTUB.EXE' DATA NONE
ifade yazı tipi özniteliklerini açıklar ve yazı tipi yüklendiğinde, Windows Denetim Masası'nda görüntülenen bir açıklama sağlayan bir dize belirtir.
WINSTUB.exe kullanıcı uygulamayı MS-DOS altında çalıştırmak çalışırsa, "Bu uygulama Microsoft Windows gerektirir" iletisi yazdırır küçük bir dosyadır.
Kitaplık, kendi otomatik bir veri kesimini gerektirmez NONE
özniteliği belirtir.
Böylece Windows, bir <a0>yazı tipi</a0> kaynak kitaplığı olduğunu anlarsınız açıklama dizesini FONTRES metin ile başlaması GEREKIR.
("Microsoft Windows yazılım geliştirme seti kılavuzu için programlama" daha fazla bilgi ve örnekler için bkz.)
<a1>Adım</a1> V: yazı tipi kaynak kitaplığı oluşturma
- MASM örnek kod, bir nesne dosyasına birleştirmek için kullanın.
- LINK4 gövdesi kitaplığı oluşturmak için kullanın.
- RC kitaplığa yazı tipi eklemek için kullanın.
- Yazı tipi kitaplığı FON uzantısı ile yeniden adlandırın.
Bir örnek makefile aşağıdadır:
all: fontlib.exe fontlib.obj: fontlib.asm masm fontlib.asm; fontlib.exe: fontlib.mak fontlib.def fontlib.obj \ fontlib.rc fontlib.fnt link4 fontlib.obj, fontlib.exe, NUL, /NOD, fontlib.def rc fontlib.rc rename fontlib.exe fontlib.fon
LINK yerine LINK4 kullanma:
Önemli Not: Yukarıdaki örnekteki LINK4 belirtimi, bir hata değildir. Girişimi yapıldığında, başlama kesimi olan yürütülebilir bir dosya oluşturmak için Microsoft C sürüm 5.1 ve Microsoft C sürüm 6.0 ile birlikte sağlanan standart bir linkers hata iletileri oluşturur. LINK4.EXE Windows 3.x SDK ile birlikte gelir. Ancak, bunu Windows 2.x SDK ve Windows 3.x DDK ile birlikte gelir.
Adımlar ııı, IV ve V yukarıda verilen yordamın şekilde değiştirilirse, LINK sürümleri 5,12 ve daha sonra yazı tipi dosyaları oluşturmak için kullanılabilir:
Iıı adım YENI: boş bir kod modülü oluştur
Bir kod kesimi, boş bir Windows çıkış yordam (WEP) oluşturarak kukla kod modülünde oluşturun. Bu kod, aşağıdakine benzer:
.xlist include cmacros.inc .list sBegin CODE cProc WEP,<FAR,PASCAL,PUBLIC>,<si,di> parmW EntryCode cBegin WEP cEnd WEP cEnd CODE end
YENI adım IV: Modül bir tanım dosyası oluştur
Aşağıdaki satırları eklemek için yukarıda verilen DEF dosyasını değiştirin:
EXETYPE WINDOWS CODE MOVEABLE DISCARDABLE EXPORTS WEP @1 RESIDENTNAME
YENI bir adım V: yazı tipi kaynak kitaplığı oluşturma
Makefile, yerine LINK LINK4 için başvuracak şekilde değiştirin.
5.1 MASM yerine MASM 6. 0'ı kullanma
Microsoft Macro Assembler (MASM) sürüm 6.0 kullanarak yazı tipi dosyası oluşturulursa, sürüm 5.2 Windows SDK ile birlikte dosyanın yerine MASM ile dahil 5.3 CMACROS.INC dosyasının sürümünü kullanın.
Yazı tiplerini erişmek için <a0></a0>, DLL adını ve RemoveFontResource()AddFontResource()
kullanın. Belirlenmiş özniteliklere sahip bir yazı tipi için bir tanıtıcı almaya CreateFont()
veya CreateFontIndirect()
kullanın. Yazı tipi içinde belirtilen bir DC koymak SelectObject()
kullanın.
Yüz adı (örneğin, "Sistem" veya "Helv") yazı tipini, yazı tipini yazı tipi Düzenleyicisi'ni kullanarak oluşturulduğunda belirtilebilir. Bu aynı yüz adı CreateFont()
veya CreateFontIndirect()
çağrılırken lpFaceName parametresi olarak belirtildi. Yüz adı istenen herhangi bir ad olabilir.