在VS2013中编写程序总出现实参与c语言形参和实参不兼容错误

Windows入门基础:2.vs2013中Icon显示 - 尽数空
来源:互联网
编辑:刘梓楠
有网友碰到过这样的问题:Windows入门基础:2.vs2013中Icon显示 - 尽数空,问题详细内容为:挺不错的博文:Windows入门基础:2.vs2013中Icon显示 - 尽数空,我搜你通过互联网收集了相关的一些解决方案,希望对有过相同或者相似问题的网友提供帮助,具体如下:
第一:系统小图标的显示
wndclass.hIcon = LoadIcon(NULL,IDI_WARNING);&//LoadIcon函数的第一的参数要为0,第二个参数是系统自定义的ID号:
& &&IDI_APPLICATION:作为应用程序默认的图标。&&&&IDI_QUESTION:当你的窗口作为一个选择时,使用这个提问图标很适合。&&&&IDI_ERROR:当操作发现错误时,提示窗口使用错误图标,非常准确的告知用户发生了错误。&&&&IDI_WARNING:当操作可能会产生危险时,比如确定后,地球就要爆炸了,你一定要警告哦。&&&&IDI_INFORMATION:当需要给用户提供更多提示信息时,用这个图标很友善和惬意。&&&&IDI_SHIELD:当涉及到用户权限时,才会用这个图标。比如需要一定的权限才能开启炸毁地球的操作,就用权限的盾牌图标很清楚的表达了这个意思。
第二:自定义小图标的显示
&资源视图& -& 右击,&添加资源& -& 选择&Icon&(新建则是创建一个空白的图标,自己作画;导入则是添加图标文件到项目)。然后完毕,即可看到第三张图标的结果。
&&& 那么这样,我们添加好了图标,图标也有默认的ID了。那么我们就可以使用自定义的图标了。使用代码如下:
wndclass.hIcon = LoadIcon(hInstance, IDI_ICON1);
& & &我们运行后,代码的IDI_ICON1底下有波浪线,提示未定义标识符哦。
&&&&&&& 没有经验的不知道怎么回事,有经验的就知道,这个ID是没有定义的位置的。因为,在你添加资源的时候,VS帮你创建了resource.h头文件,用于定义这些资源ID的。那么知道问题原因就好解决了,问题就是资源ID没有定义。既然已经有定义的头文件了,那么我们包含进来就可以了。看代码:
#include "resource.h"
&&&& 然而发现,问题依然没有解决,因为IDI_ICON1底下还有波浪线。把光标放在上面看看,提示&错误:int类型的实参与LPCWSTR类型的形参不兼容&。知道什么问题了吗?传递给函数的参数类型不对。因为在resource.h中定义的IDI_ICON1是一个整型类型哦,见下面定义的代码:
#define IDI_ICON1
&&&& 所以呀,这就是问题了。那么我们得知道需要的类型是什么样的。LPCWSTR是CONST WCHAR *LPCWSTR的类型别名,CONST是const的类型别名,WCHAR是wchar_t类型的别名,wchar_t是宽字符的字符类型,char是窄字符的字符类型。宽字符使用Unicode编码,窄字符使用多字节编码。对于这个部分的扩展阅读,请看《字符集与字符编码的关系详细分析》、《轻松彻底理解符号、字符和字符集(ASCII、Unicode)&》。所以,LPCWSTR实际上就是这个类型:const wchar_t*,也就是一个指向常量宽字符的指针类型。不过,这里你也只需要了解即可,因为Windows早已为我们准备好工具了,就是将整型类型转换为这个类型的宏MAKEINTRESOURCE。在宏括号中传入整型的ID。最后这个宏转换结果就是LPCWSTR类型了。这样就打工告成了。代码如下:
wndclass.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON1));
&&&& 看看我的自定义图标:
posted @ 请注意,本站信息均收集自互联网,相关信息仅供参考,医疗等重要信息请以正规途径为最终意见,本站不承担任何责任!
您可能还关注12被浏览2226分享邀请回答#define ren_send(path, time, typestring...)
本来就是错的啊#define ren_send(path, time, typestring, ...)
才是对的行吗。我就想知道这件事情和VS2013有特么什么毛关系,哪个预编译器让你写的能通过了,那才叫错了。205 条评论分享收藏感谢收起1添加评论分享收藏感谢收起写回答目录 目录 ........................................................................ 1 注释/取消注释 .................................................................................................................. 1 \类型的实参与 \类型的形参不兼容 ............................................ 1 有多个 重载函数 \实例与参数列表匹配 ........................................................... 2 无法打开 源 文件 \......................................................................................... 5 模块对于 SAFESEH 映像是不安全的.......................................................................... 5 VS产生sdf和ipch文件太大处理方案 ......................................................................... 9 STL模板特化遇到的问题 ............................................................................................. 10 error C2665: “AfxMessageBox”: 2 个重载中没有一个可以转换所有参数类型 ....... 11 类型定义在后,调用在前 ............................................................................................. 11 vs为什么把void CMyView::OnDraw(CDC* pDC)的第2个参数注释了啊? ............ 12 怎么获取指定View的CDC ......................................................................................... 13 两个view(View1和View2)之间的同步 ................................................................. 13 指令:
MFC does not support _WIN32_WINNT .......................................................... 13 缺少显式类型(假定“int”) ............................................................................................ 13 无法解析的外部命令―lib的调用 ................................................................................ 14 error: Building MFC application with /MD[d] ............................................................... 15 error C4996: 'fopen': This function or variable may be unsafe. ...................................... 17 VC 如何Copy一个项目的资源文件中的对话框到另一个项目 ............................... 17 “TRACE”:
找不到标识符 ........................................................................................... 20 无法打开包括文件: “fstream.h” .................................................................................... 20 static_cast 无法从“void (__thiscall CREBot* )(WPARAM,LPARAM)”转换 ......... 21 ReadHuge”: 不是“CFile”的成员 .............................................................................. 22 PARAFORMAT 如何转换为 PARAFORMAT2?? ................................................ 23
Donnie Liang
注释/取消注释
1)注释:组合键“Ctrl+K+C”;
2)取消注释:组合键“Ctrl+K+U” 不过是单行注释 如果相要全部注释 可以先按Ctrl+A 再按 Ctrl+K+C
\类型的实参与 \类型的形参不兼容
6 IntelliSense:
\*\类型的实参与 \*\类型的形参不兼容d:\\VSprj\\Lelecode\\DataShowClass\\DataShow\\DataShow.cpp 985 12 数据显示类
1>d:\\vsprj\\lelecode\\datashowclass\\datashow\\datashow.cpp(451): error C2664: “void ATL::CStringT<wchar_t,StrTraitMFC_DLL<wchar_t,ATL::ChTraitsCRT>>::Format(UINT,...)”: 无法将参数 1 从“const char [7]”转换为“const wchar_t *”
错误 1 error MSB8031: Building an MFC project for a non-Unicode character set is deprecated. You must change the project property to Unicode or download an additional library. See
/fwlink/p/?LinkId=286820
for more information. C:\\Program Files (x86)\\MSBuild\\Microsoft.Cpp\\v4.0\\V120\\Microsoft.CppBuild.targets 369 5 数据显示类
使用VS2013编译旧版VC++程序时,提示Building an MFC project for a non-Unicode character set is deprecated,微软提供了解决方案。
一、错误信息
------ 已启动全部重新生成:
项目: Server, 配置: Release Win32 ------
1>C:\\Program Files (x86)\\MSBuild\\Microsoft.Cpp\\v4.0\\V120\\Microsoft.CppBuild.targets(369,5): error MSB8031: Building an MFC project for a non-Unicode character set is deprecated. You must change the project property to Unicode or download an additional library. See /fwlink/p/?LinkId=286820 for more information.
========== 全部重新生成:
成功 0 个,失败 1 个,跳过 0 个 ==========
二、微软解释
用于多字节字符编码 (MBCS) 的 MFC 库 (DLL) 不再包含于 Visual Studio 中,但是可用作插件,您可以在任何装有 Visual Studio Professional、Visual Studio Premium 或 Visual Studio Ultimate 的计算机上下载和安装。(在 Visual Studio 中,必须启用 MFC。)安装需要大约 440 MB 磁盘空间,包括英语(美国)和 DLL 的本地化版本。
在安装 MBCS DLL 后,如果卸载或修复 Visual Studio,则还会卸载或修复。但是,如果只禁用 MFC,MBCS DLL 仍会保留在系统上。如果仅卸载或修复 MBCS DLL,将不会修改 Visual Studio。
详细信息:/b/vcblog/archive//mfc-support-for-mbcs-deprecated-in-visual-studio-2013.aspx
下载地址:/zh-cn/download/details.aspx?id=40770
有多个 重载函数 \实例与参数列表匹配:
nHeight=height/pow(2,k);
32 IntelliSense:
有多个 重载函数 \实例与参数列表匹配:
参数类型为:
(int, int) d:\\VSprj\\fft\\MFC的图像处理正交变换\\小波变换\\WvltTransDib.cpp 147 14 DSplit
nHeight=height/ (2.0, (int)k)
错误 1 error C1083: 无法打开包括文件: “gsl/gsl_matrix.h”: No such file or directory d:\\vsprj\\opengl\\opengl环境obj文件\\dialogbarandobjandopengl\\mfcsimple\\mesh.h 10 1 MfcSimple
virtual BOOL Create(
LPCTSTR lpClassName,
LPCTSTR lpWindowName,//
&afxChNil 应该用 “” 吧 , 不是 NULL
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd = NULL,
UINT nID = 0 );
\代替以前&afxChNil 的位置 在VS2010 里面也可以编译通过
4 无法打开 源 文件 \ 3 IntelliSense:
无法打开 源 文件 \ d:\\VSprj\\OpenGL\\Edit3DM\\DockView\\scbarg.cpp 32 1 Edit3DM
解决方法:在
项目属性=》配置属性=》C/C++
=》常规 =》附加包含目录 中增加:$(ProjectDir)见下图
模块对于 SAFESEH 映像是不安全的
错误 4 error LNK2026: 模块对于 SAFESEH 映像是不安全的。 D:\\VSprj\\OpenGL\\多个OpenGL窗口\\MutiWindow\\glut32.lib(glut32.dll) MutiWindow
1. 打开该项目的“属性页”对话框,会出现如下界面所有回答(1)
http://blog.csdn.net/xjc/article/details/
&&&您需要以后才能回答,未注册用户请先。

我要回帖

更多关于 实参和形参的区别 的文章

 

随机推荐