سؤال

أنا أستخدم لغة c++ المُدارة لتنفيذ طريقة تُرجع سلسلة.أعلن عن الطريقة في ملف الرأس الخاص بي باستخدام التوقيع التالي:

String^ GetWindowText()

ومع ذلك، عندما أستخدم هذه الطريقة من C#، يكون التوقيع:

string GetWindowTextW();

كيف أتخلص من حرف "W" الإضافي في نهاية اسم الطريقة؟

هل كانت مفيدة؟

المحلول

للتغلب على اختراق المعالج المسبق لملفات رأس Windows، قم بإعلانها على النحو التالي:

#undef GetWindowText
String^ GetWindowText()

لاحظ أنه إذا كنت تستخدم Win32 أو MFC بالفعل GetWindowText() الإجراءات الروتينية في التعليمات البرمجية الخاصة بك، ستحتاج إما إلى إعادة تعريف الماكرو أو تسميتها باسم GetWindowTextW().

نصائح أخرى

GetWindowText عبارة عن استدعاء Win32 API وهو مستعار عبر ماكرو إلى GetWindowTextW في مشروع C++ الخاص بك.

حاول إضافة #undef GetWindowText إلى مشروع C++ الخاص بك.

لا تتم إدارته باستخدام لغة c++ ولكن C++/CLI لمنصة .net.مجموعة من ملحقات Microsoft لـ C++ للاستخدام مع نظام .Net الخاص بهم.

الأسئلة الشائعة لبيارن ستروستروب http://www.research.att.com/~bs/bs_faq.html#CppCLI

C++/CLI ليس C++، لا تضع علامة عليه على هذا النحو.تكساس

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top