Fungsi SetDllDirectoryA (winbase.h)
Menambahkan direktori ke jalur pencarian yang digunakan untuk menemukan DLL untuk aplikasi.
Sintaks
BOOL SetDllDirectoryA(
[in, optional] LPCSTR lpPathName
);
Parameter
[in, optional] lpPathName
Direktori yang akan ditambahkan ke jalur pencarian. Jika parameter ini adalah string kosong (""), panggilan akan menghapus direktori saat ini dari urutan pencarian DLL default. Jika parameter ini NULL, fungsi memulihkan urutan pencarian default.
Nilai kembali
Jika fungsi berhasil, nilai yang dikembalikan bukan nol.
Jika fungsi gagal, nilai yang dikembalikan adalah nol. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.
Keterangan
Fungsi SetDllDirectory memengaruhi semua panggilan berikutnya ke fungsi LoadLibrary dan LoadLibraryEx . Ini juga secara efektif menonaktifkan mode pencarian DLL aman saat direktori yang ditentukan berada di jalur pencarian.
Catatan
Untuk proses Win32 yang tidak menjalankan proses yang dipaketkan atau dilindungi, memanggil fungsi ini juga akan memengaruhi urutan pencarian DLL dari proses anak-anak yang dimulai dari proses yang telah memanggil fungsi.
Setelah memanggil SetDllDirectory, jalur pencarian DLL standar adalah:
- Direktori tempat aplikasi dimuat.
- Direktori yang ditentukan oleh parameter lpPathName .
- Direktori sistem. Gunakan fungsi GetSystemDirectory untuk mendapatkan jalur direktori ini. Nama direktori ini adalah System32.
- Direktori sistem 16-bit. Tidak ada fungsi yang mendapatkan jalur direktori ini, tetapi dicari. Nama direktori ini adalah Sistem.
- Direktori Windows. Gunakan fungsi GetWindowsDirectory untuk mendapatkan jalur direktori ini.
- Direktori yang tercantum dalam variabel lingkungan PATH.
Untuk kembali ke jalur pencarian standar yang digunakan oleh LoadLibrary dan LoadLibraryEx, panggil SetDllDirectory dengan NULL. Ini juga memulihkan mode pencarian DLL aman berdasarkan nilai registri SafeDllSearchMode .
Untuk mengkompilasi aplikasi yang menggunakan fungsi ini, tentukan _WIN32_WINNT sebagai 0x0502 atau yang lebih baru. Untuk informasi selengkapnya, lihat Menggunakan Header Windows.
Catatan
Header winbase.h mendefinisikan SetDllDirectory sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta pra-prosesor UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows Vista, Windows XP dengan SP1 [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2003 [hanya aplikasi desktop] |
Target Platform | Windows |
Header | winbase.h (termasuk Windows.h) |
Pustaka | Kernel32.lib |
DLL | Kernel32.dll |