prvePROC=(WNDPROC)SetWindowLong(GetDlgItem(IDC_EDIT1)->m_hWnd ,GWL_WNDPROC,(long)MyselfPROC);warning C4311: “类型转换”: 从“LRESULT (__stdcall *)(HWND,UINT,WPARAM,LPARAM)”到“long”的指针截断warning C4312: “类型转换”: 从“LONG”转换到更大的“WNDPROC”prvePROC 和 MyselfPROC 都是WNDPROC 窗口过程类型.上面两个警告要怎么去掉?
解决方案 »
- 调用CxImage类库进行图片格式转换的问题
- 找一个VS2010的控件插件
- 苦恼:为什么一给控件添加变量,程序就出错!
- 怎么用代码实现,把网线拔下又插上那样的效果
- 关于打开文件的一个问题
- first chance exception .... access violation,
- 为什么我用ATL做COM时不能使用_bstr_t类?
- 请问如何得到选定磁盘目录的名称?CFileDialog好象必须制定文件才行。
- 寻求兼职的地方-(工资不重要,能长经验就行)
- VC 动态创建的CTreeCtrl,总被下面的CListCtrl遮挡,这个该怎么解决
- VC6.0在哪里做HTML 编程??
- 用opengl画一个 “指南针”的问题 ???
SetWindowLong改SetWindowLongPtr
是不是64位的问题。
SetWindowLong改SetWindowLongPtr==============================================================================不是这个问题,改了也还有警告.你那64位是不是指CPU ?
prvePROC=(WNDPROC)SetWindowLong(GetDlgItem(IDC_EDIT1)->m_hWnd ,GWL_WNDPROC,(WNDPROC)MyselfPROC);
============================================================================== error C2664: “SetWindowLongW”: 不能将参数 3 从“WNDPROC”转换为“LONG”我原先所做的强制类型转换都是针对 SetWindowLongW() 参数类型的.
warning C4312: “类型转换”: 从“LONG”转换到更大的“WNDPROC”还是存在警告还有,你们指的64位是不是指CPU 处理数据的能力?
warning C4312: “类型转换”: 从“LONG”转换到更大的“WNDPROC”
int32* a;是像上面那样使用吗?
仔细读读SetWindowLongPtr的定义,应该可以去掉这些警告。大概如下prvePROC=SetWindowLongPtr(GetDlgItem(IDC_EDIT1)->m_hWnd ,GWLP_WNDPROC ,MyselfPROC);
error C2664: “SetWindowLongW”: 不能将参数 3 从“LRESULT (__stdcall *)(HWND,UINT,WPARAM,LPARAM)”转换为“LONG”按我原来的写法,有警告,但运行不会出错.我是看 VC6.0的视频学的,好象在视频里没有警告.我用的是VC2005拜托帮忙分析下为什么这个警告,指针都截断了,还没影响