编译器无法找到的结构,我应该包括
-
18-09-2019 - |
题
更新: 我认为这是我Windsows.h需要包括你已经证实了这一点,但是当我做它列入我得到了一组类似下面的消息...
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!
我想打电话的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;
}
}
我知道这些结构,但可以让编译器来识别它们。我失去ref或是否有VC ++别名为相同?
干杯。
解决方案
当您在C ++ / CLI Windows窗体应用程序#包括WINDOWS.H你会得到一些讨厌的符号名称冲突。但是,这是自己造成的。在WF应用抽你自己的消息循环是的不的合适。它已经有一个,申请::运行()。你可以自己写,你将不能够适当地进行预处理消息做出这样的东西的键盘快捷方式工作。
通过一些C工作++ / CLI编程教程尝试此之前。
其他提示
您需要包括含有这些定义的头文件。从 http://msdn.microsoft.com/en -us /库/ ms644943%28VS.85%29.aspx :
在Winuser.h中声明的,包括 WINDOWS.H
所以,只要做到这一点:
#include <Windows.h>
不隶属于 StackOverflow