ورود

View Full Version : سوال: طریقه استفاده از توابع ویندوزی در دلفی(تعریف Type ها)



hp1361
سه شنبه 22 اسفند 1391, 08:21 صبح
با سلام خدمت تمام دوستان برنامه نویس

به احتمال خیلی زیاد خیلی از دوستان در برنامه نویسی از توابع ویندوزی استفاده کرده اند.

یکی از این توابع NetServerEnum هستش که لیست سرور های فعال در شبکه رو برمیگردونه.

مسئله ای که ذهن منو مشغول کرده نحوه تعریف ورودی ها و خروجی های این نوع توابع هستش.

Type هایی که در ویندوز استفاده شده بعضا با دلفی فرق داره(حداقل در نام گذاریشون).

خواستم دوستانی که با روند استفاده از Type ها تبحر دارند در این خصوص تجربیات خودشون رو به اشتراک بزارند.

برای مثال تابعی که در بالا معرفی کردم:


NET_API_STATUS NetServerEnum(
_In_opt_ LPCWSTR servername,
_In_ DWORD level,
_Out_ LPBYTE *bufptr,
_In_ DWORD prefmaxlen,
_Out_ LPDWORD entriesread,
_Out_ LPDWORD totalentries,
_In_ DWORD servertype,
_In_opt_ LPCWSTR domain,
_Inout_opt_ LPDWORD resume_handle
);


نوع هایی چون LPCWSTR ، LPBYTE ، LPDWORD و یا _In_opt_ با روش نامگذاریشون کمی گیج کننده اند!
البته خود مایکروسافت در موردشون توضیح داده که چه نوع تایپی هستند و چطوری اند اما انطباق این چیزا در دلفی کمی تبحر میخواد.

برای مثال در یکی از فروم ها نوع LPCWSTR در دلفی Pchar تعریف شده بود.
چرا PChar؟ چرا PWideChar نه؟ یا چرا String نه؟

قاعدتاً جواب سوال خیلی کلی خواهد بود و در یکی دو تا پاسخ محدود نخواهد شد.

از دوستان خواهشمندم تجربیات و دانششون رو هرچند محدود و کم به ما هم انتقال بدن

ممنون

lord_viper
سه شنبه 22 اسفند 1391, 08:44 صبح
http://delphi.about.com/od/windowsshellapi/l/aa101303a.htm