Tôi muốn ngăn chặn tải DLL độc hại mà có thể có thể thông qua truy cập của thư mục làm việc hiện tại như mô tả trong http://msdn.microsoft.com/en-us/library/ff919712(VS.85).aspxLàm thế nào để gọi hàm WinAPI SetDllDirectory() trong Delphi?
Các giải pháp thực hiện trong các ứng dụng của chúng tôi C++ là để thực hiện cuộc gọi WinAPI để SetDllDirectory (""), mà có hiệu quả sẽ loại bỏ các thư mục làm việc hiện tại từ đường dẫn tìm kiếm tải Windows DLL. Tuy nhiên, có vẻ như giải pháp này không có sẵn cho các ứng dụng Delphi của chúng tôi vì hàm SetDllDirectory() không tồn tại.
Có cuộc gọi tương đương trong Delphi thực hiện điều tương tự như SetDllDirectory ("") không? Cảm ơn!
Nếu bạn muốn sử dụng một chức năng trong Windows API (có nghĩa là, một hàm ** trong Windows **, trông giống nhau trong bất kỳ ngôn ngữ nào) không được khai báo trong 'Windows.pas', thường thì thực sự dễ dàng tự khai báo. Tất cả những gì bạn cần là thông tin tại MSDN, nơi mà các kiểu dữ liệu của đối số và kết quả được chỉ định, như là DLL để xem xét. Trong hầu hết các trường hợp, các kiểu được sử dụng có thể được sử dụng ngay cả trong Delphi (như HBRUSH) , HWND, vv), hoặc bạn có thể sử dụng một loại tương đương (chẳng hạn như 'cardinal', hoặc' THWND'). Chỉ cần đừng quên đặt quy ước gọi thành 'stdcall'. –