هل تواجه مشكلة مع ترميز دالة WinMain؟

This article is available in English too, check it out here.

تلقيت أحد الأسئلة عن مدخلات دالة WinMain() حيث أن المدخل lpCmdLine ترميزه ANSI، فكيف إذا كانت المدخلات لبرنامجك Unicode، كيف تحصل عليها؟

ببساطة، يمكنك استخدام دالة GetCommandLine() والتي ترجع النص المستخدم في فتح البرنامج أي الـ Command Line حسب ترميز كودك. وهذه الدالة لها التعريف التالي:

LPTSTR GetCommandLine(VOID);

هذا يذكرنا كثيرا بدالة main()، والتي ترميزها ANSI أيضا. والحل هو أن تقوم بتعريف هذه الدالة بما يتواءم مع ترميز برنامجك. لاحظ الأكواد التالية:

int main(int argc, char** argv) 	// ANSI

int wmain(int argc, wchar** argv) 	// Unicode

int _tmain(int argc, TCHAR** argv) 	// Unicode if _UNICODE is defined

اترك تعليقا

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

شعار ووردبريس.كوم

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   /  تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   /  تغيير )

Connecting to %s