2010-01-05 2 views
0

업데이트 : 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 

나는 이것을 고치는 법을 모른다.


PeekMessage를 호출하려고하는데 컴파일하려고 할 때 다음 오류가 발생합니다.

'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++ 별칭이 있습니까?

건배.

+0

이미 windows.h를 포함 했습니까? –

답변

1

당신 당신은 몇 가지 불쾌한 기호 이름 충돌을 얻을 것이다 C++/CLI Windows Forms 응용 프로그램에서 #include windows.h. 그러나 이것은 스스로 유도 한 것입니다. WF 앱에서 자신의 메시지 루프를 펌핑하면 이 아닌이 적합합니다. 이미 Application :: Run()이 하나 있습니다. 자신 만의 글을 쓸 수는 없으므로 키보드 단축키 같은 것을 만들기 위해 메시지를 전처리 할 수 ​​없습니다.

시도하기 전에 일부 C++/CLI 프로그래밍 자습서를 사용해보십시오.

관련 문제