مترجم لا يمكن العثور على الهياكل، ماذا يجب أن أكون بما في ذلك

StackOverflow https://stackoverflow.com/questions/2009549

سؤال

تحديث: اعتقدت أنه كان 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>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top