Bagikan melalui


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:

  1. Direktori tempat aplikasi dimuat.
  2. Direktori yang ditentukan oleh parameter lpPathName .
  3. Direktori sistem. Gunakan fungsi GetSystemDirectory untuk mendapatkan jalur direktori ini. Nama direktori ini adalah System32.
  4. Direktori sistem 16-bit. Tidak ada fungsi yang mendapatkan jalur direktori ini, tetapi dicari. Nama direktori ini adalah Sistem.
  5. Direktori Windows. Gunakan fungsi GetWindowsDirectory untuk mendapatkan jalur direktori ini.
  6. Direktori yang tercantum dalam variabel lingkungan PATH.
Setiap kali fungsi SetDllDirectory dipanggil, fungsi ini menggantikan direktori yang ditentukan dalam panggilan SetDllDirectory sebelumnya. Untuk menentukan lebih dari satu direktori, gunakan fungsi AddDllDirectory dan panggil LoadLibraryEx dengan LOAD_LIBRARY_SEARCH_USER_DIRS.

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

Lihat juga

AddDllDirectory

Urutan Pencarian Pustaka Dynamic-Link

GetDllDirectory

GetSystemDirectory

GetWindowsDirectory

LoadLibrary

LoadLibraryEx