Frage

UPDATE: Ich dachte, es war Windsows.h ich muss schließen und Sie haben dies bestätigt, aber wenn ich es beinhalten erhalte ich eine Reihe von Nachrichten wie folgt ...

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

Ich weiß nicht, wie dieses Problem zu beheben, eik!


Ich versuche PeekMessage zu nennen, aber wenn ich versuche zu kompilieren ich folgende Fehlermeldungen erhalten.

'MSG': nicht deklarierter Bezeichner 'HWND': undeclared Identifikator 'PM_REMOVE': nicht deklarierter Bezeichner

mein Code wie unten ...

MSG message;
    while(form->Created)
                {
                    while( PeekMessage( &message, (HWND)form->Handle.ToPointer(), 0, 0, PM_REMOVE ) )
                    {
                        TranslateMessage( &message );
                        DispatchMessage( &message );
                        if( !mainWindow->Created )
                            break;
                    }
                }

Ich weiß, was diese Strukturen aber den Compiler sich zu erkennen bekommen. Bin ich ein ref fehlt oder gibt es VC ++ alias' für das gleiche?

Prost.

War es hilfreich?

Lösung

Sie werden einige unangenehme Symbolnamen Kollisionen erhalten, wenn Sie windows.h in einer C ++ / CLI Windows Forms app # include. Aber das ist selbstinduzierte. Pumpen Sie Ihre eigene Nachricht Schleife in einem WF-App ist nicht angemessen. Es hat bereits eine Application :: Run (). Sie können Ihre eigenen nicht schreiben, werden Sie nicht die Nachricht entsprechend zu Vorprozess der Lage sein, Sachen zu machen, wie Tastenkombinationen funktionieren.

Arbeiten durch einige C ++ / CLI Programmierung Tutorials, bevor Sie versuchen, diese.

Andere Tipps

Sie müssen eine Header-Datei diese Definitionen enthalten enthalten. Aus http://msdn.microsoft.com/en -US / library / ms644943% 28VS.85% 29.aspx :

  

in Winuser.h erklärt, umfassen   Windows.h

So, dies zu tun:

#include <Windows.h>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top