MFC提示没有与参数列表匹配的重载函数TextOut

MFC提示没有与参数列表匹配的重载函数TextOut,第1张

加上l表示是宽字符,占2个字节,类型是wchar_t,你错是因为你传过去的字符串是char类型,类型不对

比如l'a':一个宽字符a,2字节

l"abcd":一个宽字符串abcd,10字节

mfc中字符串最好用_t宏括起来:

pdc->textoutw(30,

30,

_t("lin"));

pow是double型的返回值,写错了就会有这样的提示。

pow函数的重载如下:

C++提供以下几种pow函数的重载形式:

1、double pow(double X,int Y);

2、float pow(float X,float Y);

3、float pow(float X,int Y);

4、long double pow(long double X,long double Y);

5、long double pow(long double X,int Y);

使用的时候应合理设置参数类型,避免有多个“pow”实例与参数列表相匹配的情况。

其中较容易发生重载的是使用形如:

int X,Y;

int num=pow(X,Y);

这是一个比较常用的函数,但是编译器会提醒有多个“pow”实例与参数列表相匹配。

可以使用强制类型转换解决这个问题:num=pow((float)X,Y);

主要是你不理解模板使用,模板使用需要有模板参数,按你的题意你这个问题使用格式如下:

Insertion<int>(num,n); // <>里面就是模板参数,另外num已是 T [],再加[]就变成T [][]了

当然这样也行:Insertion<int>(num[],n); // 但这个不合你的题意

另外,你cin>>num[i];,这个num没有初始化就用了,这程序到这就崩溃了,你需要在用它前,给它分配内存,如 cin>>n; num= new int(n);

你复制了这个中文(了,把它改成半角,num= new int(n);必须加在cin>>n;后面。

你第一个参数是文件的路径字符串,它是char型的。但是open函数需要的是(LPCTSTR)型的路径字符串。你第一个参数不符合要求,系统不认为这个参数有效,自然就会告诉你缺少参数了。你只要在"d:\\dd\\tryTRY"前面加个LPCTSTR,做个强制转换就行了。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/12186162.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存