Tips SistemThis article applies to a different operating system than the one you are using. Article content that may not be relevant to you is disabled.
Sejak rilis pertama, Visual Basic telah memberikan pernyataan menetapkan sebagai
sarana bagi Anda untuk mengambil keuntungan dari fungsi DLL yang ditulis di lain
bahasa, seperti C. Tetapi pernyataan menetapkan kurang sempurna dan
sering meminta Anda untuk tahu lebih banyak tentang DLL seperti yang Anda lakukan tentang Visual
Dasar kode. Perpustakaan jenis menciptakan sebuah cara yang lebih ramah Visual Basic dari
panggilan diekspor c fungsi.
Artikel ini menunjukkan cara membuat perpustakaan jenis ketika Anda membangun Anda
DLL, dan bagaimana untuk referensi Perpustakaan itu dari Visual Basic.
Jenis perpustakaan adalah senyawa dokumen file (file .tlb) digunakan dalam otomatisasi.
Mereka berisi informasi penting tentang jenis, objek, modul, dan
antarmuka terkena oleh server Otomatisasi kepada klien. Untungnya,
server tidak perlu otomatisasi-sadar untuk mengambil keuntungan dari jenis
perpustakaan. Pada kenyataannya, kebanyakan c dll tidak server Otomatisasi. Semua itu
diperlukan adalah bahwa C DLL menyatakan fungsinya sebagai anggota dari modul di
Perpustakaan jenis. Klien otomasi, seperti Visual Basic, dapat membaca ini
informasi dan mengikat untuk itu karena akan benda. Tidak perlu untuk menetapkan
pernyataan atau sulit untuk mengingat konstanta karena Visual Basic tidak semua
bekerja.
Ada beberapa keuntungan dalam menciptakan perpustakaan jenis untuk Anda DLL. The
paling penting dari ini adalah lebih baik jenis keamanan. Tapi Anda juga mendapatkan
keuntungan performa yang lebih baik, karena Visual Basic secara otomatis mengikat
untuk fungsi Anda menggunakan ikatan. Sebaliknya, semua pernyataan menetapkan
akhir-terikat. Selain itu, Anda mendapatkan lebih besar kontrol atas cara Anda DLL
disajikan untuk Visual Basic programer. Perpustakaan jenis memungkinkan Anda untuk
memberikan nama ramah Visual Basic untuk fungsi dan parameter, bersama
dengan membantu ekstra seperti enumerasi dan jenis ditetapkan pengguna (UDTs).
Saat ini, jenis perpustakaan yang dibuat menggunakan skrip yang ditulis dengan baik
Antarmuka definisi bahasa (IDL) atau bahasa objek keterangan
(ODL). Script ini kemudian dikumpulkan menggunakan MkTypLib.EXE atau MIDL.EXE yang
datang dengan Visual Studio. Visual c ++ mengambil beberapa pekerjaan dari menciptakan
Ketik perpustakaan, karena ODL setiap file yang Anda asosiasikan dengan Anda DLL
proyek akan secara otomatis mengumpulkan dengan MIDL ketika Anda mengkompilasi Anda
proyek.
Menyatakan Anda fungsi di perpustakaan jenis dengan menambahkan berikut
untuk TLBSamp.odl:
// This is the type library for TLBSamp.dll
[
// Use GUIDGEN.EXE to create the UUID that uniquely identifies
// this library on the user's system. NOTE: This must be done!!
uuid(F1B9E420-F306-11d1-996A-92FF02C40D32),
// This helpstring defines how the library will appear in the
// References dialog of VB.
helpstring("KB Sample: Make your C DLL More Accessible"),
// Assume standard English locale.
lcid(0x0409),
// Assign a version number to keep track of changes.
version(1.0)
]
library TLBSample
{
// Define an Enumeration to use in one of our functions.
typedef enum tagRotateDirection
{
tlbRotateLeft=0,
tlbRotateRight=1
}RotateDirection;
// Now define the module that will "declare" your C functions.
[
helpstring("Sample functions exported by TLibSamp.dll"),
version(1.0),
// Give the name of your DLL here.
dllname("TLBSamp.dll")
]
module MyDllFunctions
{
[
// Add a description for your function that the developer can
// read in the VB Object Browser.
helpstring("Returns the reverse of a given string."),
// Specify the actual DLL entry point for the function. Notice
// the entry field is like the Alias keyword in a VB Declare
// statement -- it allows you to specify a more friendly name
// for your exported functions.
entry("MyDll_ReverseString")
]
// The [in], [out], and [in, out] keywords tell the Automation
// client which direction parameters need to be passed. Some
// calls can be optimized if a function only needs a parameter
// to be passed one-way.
void __stdcall ReverseString([in, out] LPSTR sMyString);
[
helpstring("Rotates a Long value in the given direction."),
entry("MyDll_Rotate")
]
// Besides specifying more friendly names, you can specify a more
// friendly type for a parameter. Notice the Direction parameter
// has been declared with our enumeration. This gives the VB
// developer easy access to our constant values.
int __stdcall BitRotate([in] int Value,
[in] RotateDirection Direction,
[in] short Bits);
} // End of Module
}; // End of Library
Menyusun perpustakaan Anda DLL dan jenis dengan memilih "Membangun kembali semua" dari
Membangun menu. Ketika selesai, salin DLL yang baru (TLBSamp.dll) untuk Visual
Direktori dasar untuk pengujian.
Catatan: Sebagai masalah kenyamanan, Anda mungkin ingin menyertakan perpustakaan jenis
dalam Anda DLL sebagai sumber daya. Ini akan membebaskan Anda dari keharusan untuk mendistribusikan
memisahkan TLB file untuk pengembang Visual Basic.
Untuk menambahkan perpustakaan sebagai sumber daya, lengkap langkah-langkah berikut:
Pilih File|Baru. Pada tab file, pilih "File teks," nama file
"TLBSamp.rc", dan tekan OK.
Di jendela teks yang muncul Tambahkan baris berikut:
1 typelib TLBSamp.tlb
Simpan file dan mengkompilasi ulang Anda DLL. Ketika selesai, salin baru
DLL (TLBSamp.dll) ke direktori Visual Basic untuk pengujian; menimpa
berkas sebelumnya jika diminta.
Untuk menguji Anda DLL dan jenis perpustakaan, membuka Visual Basic 5.0 dan membuat
Proyek standar yang baru. Form1 dibuat secara default.
Dari proyek menu, pilih referensi untuk memanggil referensi
dialog kotak, dan kemudian klik Browse untuk mencari perpustakaan jenis baru Anda (atau
Anda DLL jika Anda menambahkan perpustakaan sebagai sumber daya). Sekali Anda telah
itu, tekan OK. Visual Basic akan secara otomatis mendaftar perpustakaan untuk
Anda pertama kali Anda referensi. Pastikan bahwa perpustakaan Anda ("KB
Contoh: membuat Anda C DLL lebih mudah diakses ") telah diperiksa
referensi daftar, dan kemudian tutup kotak dialog.
Tekan tombol F2 untuk memunculkan Browser objek. Perhatikan bahwa perpustakaan Anda
(TLBSamp) telah ditambahkan ke proyek Visual Basic, dan bahwa Anda
fungsi dapat sekarang disebut hanya seolah-olah asli Visual Basic
fungsi. Visual Basic bahkan akan drop-down enumerasi Anda daftar ketika
pengembang mengetik dalam arah parameter untuk BitRotate
fungsi.
Tambah CommandButton pada Form1 dan tambahkan kode berikut tombol 's
Klik acara:
Private Sub Command1_Click()
Dim n1 As Long, n2 As Long, nTmp As Long
Dim sTest As String, sMsg As String
sTest = "Hello World!"
n1 = 100
ReverseString sTest
sMsg = sTest & " | "
ReverseString sTest
sMsg = sMsg & sTest & vbCrLf
nTmp = BitRotate(n1, tlbRotateLeft, 2)
n2 = BitRotate(nTmp, tlbRotateRight, 2)
sMsg = sMsg & Str$(n1) & " : " & Str$(nTmp) & " : " & Str$(n2)
MsgBox sMsg
End Sub
Sekarang tekan tombol F5 untuk menjalankan projek vb5allB di IDE.
Catatan: Jika Anda menerima pesan galat, mungkin karena Visual Basic
tidak dapat menemukan Anda DLL. Pastikan Anda telah disalin ke Visual Basic
direktori atau jalur sistem Anda sebelum Anda menjalankan aplikasi tes Anda.
Untuk informasi tambahan mengenai struktur ODL atau IDL, silakan lihat
artikel berikut di perpustakaan Microsoft Developer Network (MSDN):
Judul: Ketik perpustakaan dan bahasa deskripsi objek Judul: Antarmuka definisi dan jenis perpustakaan
Untuk informasi tambahan, silakan lihat artikel berikut di
Basis Pengetahuan Microsoft:
143258
(http://support.microsoft.com/kb/143258/EN-US/
)
: Cara membuat konstanta dan Deklarasi DLL di perpustakaan jenis
122285
(http://support.microsoft.com/kb/122285/EN-US/
)
: Bagaimana untuk menambahkan jenis perpustakaan sebagai sumber daya untuk berkas .dll dan .exe
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:189133
(http://support.microsoft.com/kb/189133/en-us/
)
Seberapa besar upaya Anda untuk menggunakan artikel ini?
Sangat sedikit
Sedikit
Sedang
Besar
Sangat besar
Berikan saran tentang apa yang dapat kami lakukan untuk menyempurnakan informasi ini
Terima kasih! Masukan Anda akan digunakan untuk membantu kami meningkatkan konten dukungan. Untuk opsi bantuan lainnya, kunjungi Halaman Beranda Bantuan dan Dukungan.