مترجم لا يمكن العثور على الهياكل، ماذا يجب أن أكون بما في ذلك
-
18-09-2019 - |
سؤال
تحديث: اعتقدت أنه كان windsows.hi بحاجة إلى إدراج وأكدت هذا، ولكن عندما أقوم بتضمينها، أحصل على مجموعة من الرسائل مثل ...
1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\objidl.h(5934) : error C2872: 'IDataObject' : ambiguous symbol
1> could be 'C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\objidl.h(251) : System::Windows::Forms::IDataObject IDataObject'
1> or 'c:\windows\microsoft.net\framework\v2.0.50727\system.windows.forms.dll : System::Windows::Forms::IDataObject
أنا لا أعرف كيفية إصلاح هذا، eik!
أحاول الاتصال بلقاؤه ولكن عندما أحاول ترجمة أحصل على الأخطاء التالية.
"MSG": المعرف غير المعلن "HWND": المعرف غير المعلن "PM_REMOVE": معرف غير محدد
الرمز الخاص بي هو أدناه ...
MSG message;
while(form->Created)
{
while( PeekMessage( &message, (HWND)form->Handle.ToPointer(), 0, 0, PM_REMOVE ) )
{
TranslateMessage( &message );
DispatchMessage( &message );
if( !mainWindow->Created )
break;
}
}
أعرف ما هي هذه الهياكل ولكن يمكن الحصول على المترجم للتعرف عليها. هل أنا في عداد المفقودين المرجع أو هناك اسم مستعار VC ++ لنفسه؟
هتافات.
المحلول
ستحصل على العديد من تصادمات اسم رمز سيئة عند #include WINDOWS.H في تطبيق C ++ / CLI Windows Forms. ولكن هذا هو الناجم عن نفسه. ضخ حلقة الرسائل الخاصة بك في تطبيق WF ليس ملائم. لديها بالفعل واحد، تطبيق :: تشغيل (). لا يمكنك كتابة طعامك، فلن تكون قادرا على معالجة الرسالة بشكل مناسب لجعل الأشياء مثل اختصارات لوحة المفاتيح.
العمل من خلال بعض دروس برمجة C ++ / CLI قبل أن تجرب هذا.
نصائح أخرى
تحتاج إلى تضمين ملف رأس يحتوي على هذه التعريفات. من http://msdn.microsoft.com/en-us/library/ms6444943٪28vs.85٪29.aspx. :
أعلن في WinUser.h، بما في ذلك Windows.H
لذلك، فقط افعل هذا:
#include <Windows.h>